Bug 710373

Summary: Bad exception on entering invalid netaddr.IPNetwork
Product: Red Hat Enterprise Linux 6 Reporter: Jakub Hrozek <jhrozek>
Component: python-netaddrAssignee: Jakub Hrozek <jhrozek>
Status: CLOSED ERRATA QA Contact: IDM QE LIST <seceng-idm-qe-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1CC: dpal, jeckersb, jgalipea, jhrozek, nsoman, shaines
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-netaddr-0.7.5-4.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 709701 Environment:
Last Closed: 2011-12-06 16:37:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 709701    
Bug Blocks:    

Description Jakub Hrozek 2011-06-03 08:25:41 UTC
+++ This bug was initially created as a clone of Bug #709701 +++

Description of problem:
If an IPNetwork object is instantiated with bad data, the python-netaddr code tries to access an unbound local variable. It should raise an appropriate exception instead.

This means that a user of python-netaddr must check for all exceptions instead of just expecting netaddr.core.AddrFormatError.

Version-Release number of selected component (if applicable):
python-netaddr-0.7.5-2

How reproducible:
always

Steps to Reproduce:
1. python -c "import netaddr; netaddr.IPNetwork('3333/32')"
  
Actual results:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 919, in __init__
    implicit_prefix, flags)
  File "/usr/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 782, in parse_ip_network
    value = ip._value
UnboundLocalError: local variable 'ip' referenced before assignment


Expected results:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 926, in __init__
    raise AddrFormatError('invalid IPNetwork %s' % addr)
netaddr.core.AddrFormatError: invalid IPNetwork 3333/32


Additional info:
Upstream was tracking this as issue #2 and #5 in github

--- Additional comment from updates on 2011-06-02 02:08:36 EDT ---

python-netaddr-0.7.5-3.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/python-netaddr-0.7.5-3.fc15

--- Additional comment from updates on 2011-06-03 01:28:04 EDT ---

Package python-netaddr-0.7.5-3.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-netaddr-0.7.5-3.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/python-netaddr-0.7.5-3.fc15
then log in and leave karma (feedback).

Comment 4 Namita Soman 2011-11-16 14:18:27 UTC
Verified using python-netaddr-0.7.5-4.el6.noarch

Steps taken to verify:
# python -c "import netaddr; netaddr.IPNetwork('3333/32')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/netaddr/ip/__init__.py", line 926, in __init__
    raise AddrFormatError('invalid IPNetwork %s' % addr)
netaddr.core.AddrFormatError: invalid IPNetwork 3333/32

Comment 5 errata-xmlrpc 2011-12-06 16:37:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2011-1658.html