Author niconorsk
Recipients niconorsk
Date 2019-05-07.22:53:58
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
When using the tuple-form of constructing IPv4Network and IPv6Network will accept prefixlen outside of the normal allowed ranges.

>>> import ipaddress
>>> ipaddress.IPv4Network(('', 400))

If given a negative number, it will error but not with a particularly useful error:
>>> x = ipaddress.IPv4Network(('', -1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python3.7/", line 1532, in __init__
    self.netmask, self._prefixlen = self._make_netmask(mask)
  File "/usr/lib64/python3.7/", line 1112, in _make_netmask
    netmask = IPv4Address(cls._ip_int_from_prefix(prefixlen))
  File "/usr/lib64/python3.7/", line 444, in _ip_int_from_prefix
    return cls._ALL_ONES ^ (cls._ALL_ONES >> prefixlen)
ValueError: negative shift count

Looking at the code, I think all that is needed is a range check within the respective _make_netmask methods in _BaseV4 and _BaseV6 classes
Date User Action Args
2019-05-07 22:53:58niconorsksetrecipients: + niconorsk
2019-05-07 22:53:58niconorsksetmessageid: <>
2019-05-07 22:53:58niconorsklinkissue36845 messages
2019-05-07 22:53:58niconorskcreate