New submission from wojas <pyt...@m.wojas.nl>:

On OSX (tested with 10.6), urllib will fail to parse the proxy exceptions 
configuration if no netmask is specified.

On my system the following entries have been added to the proxy exception list: 
'127.0.0.1' and 'localhost'. The traceback in included below.

The problem:
 * In 'm = re.match(r"(\d+(?:\.\d+)*)(/\d+)?", value)' the netmask is optional
 * But 'mask = int(m.group(2)[1:])' implicitly assumes it exists.

This can be fixed by using 32 as a default netmask if none is specified, see 
attached patch: 'mask = int(m.group(2)[1:]) if m.group(2) else 32'

TRACEBACK:

  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_mechanize.py", line 
203, in open
    return self._mech_open(url, data, timeout=timeout)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_mechanize.py", line 
230, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_opener.py", 
line 188, in open
    req = meth(req)
  File "/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_http.py", 
line 316, in http_request
    self.rfp.read()
  File "/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_http.py", 
line 242, in read
    f = self._opener.open(req)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_mechanize.py", line 
203, in open
    return self._mech_open(url, data, timeout=timeout)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_mechanize.py", line 
230, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_opener.py", 
line 193, in open
    response = urlopen(self, req, data)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_urllib2_fork.py", 
line 344, in _open
    '_open', req)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_urllib2_fork.py", 
line 332, in _call_chain
    result = func(*args)
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_urllib2_fork.py", 
line 666, in <lambda>
    meth(r, proxy, type))
  File 
"/Users/wojas/dev/ds/lib/python2.6/site-packages/mechanize/_urllib2_fork.py", 
line 678, in proxy_open
    if req.get_host() and self._proxy_bypass(req.get_host()):
  File 
"/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib.py",
 line 1407, in proxy_bypass
    return proxy_bypass_macosx_sysconf(host)
  File 
"/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib.py",
 line 1379, in proxy_bypass_macosx_sysconf
    mask = int(m.group(2)[1:])
TypeError: 'NoneType' object is unsubscriptable

----------
components: Extension Modules
files: urllib-osx-proxy-patch.diff
keywords: patch
messages: 123524
nosy: wojas
priority: normal
severity: normal
status: open
title: OSX proxy exceptions parse bug in urllib (crash)
versions: Python 2.6
Added file: http://bugs.python.org/file19967/urllib-osx-proxy-patch.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10643>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to