python / python/cpython

`IPv6Network.next_network()` raises the wrong error when addresses run out

Aberta
#156,680 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug description:

_BaseNetwork.next_network() guards address-space exhaustion with except OverflowError, which only the IPv4 path raises, so on IPv6 the internal ValueError from _string_from_ip_int() escapes instead.

from ipaddress import IPv4Network, IPv6Network

for net in (IPv4Network('255.255.255.0/24'),
            IPv6Network('ffff:ffff:ffff:ffff:ffff:ffff:ffff:0/112')):
    try:
        net.next_network()
    except ValueError as e:
        print(f"{net}: {e}")

Output:

255.255.255.0/24: out of address space, cannot make another /24 network
ffff:ffff:ffff:ffff:ffff:ffff:ffff:0/112: IPv6 address is too large

Expected: out of address space, cannot make another /112 network, the message Doc/library/ipaddress.rst gives for next_network().

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs
  • gh-156681
  • gh-157280

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Revise _BaseNetwork.next_network() e o texto de next_network() em Doc/library/ipaddress.rst e, em seguida, reproduza os exemplos de IPv4 e IPv6 da issue. O trabalho estará concluído quando o esgotamento do espaço de endereços IPv6 reportar a mensagem documentada “out of address space” para a rede /112, em vez de “IPv6 address is too large”.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
networking
Tipo de issue
Bug
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.