[issue32465] [urllib] proxy_bypass_registry - extra error handling required for ProxyOverride, Windows under proxy environment

2021-06-18 Thread Irit Katriel


Irit Katriel  added the comment:

There are currently no unit tests for proxy_bypass_registry, proxy_bypass, and 
nothing much for proxy_open. Those should be added as part of this work.

--
keywords: +easy
nosy: +iritkatriel
versions: +Python 3.11 -Python 2.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32465] [urllib] proxy_bypass_registry - extra error handling required for ProxyOverride, Windows under proxy environment

2017-12-31 Thread chansol kim

New submission from chansol kim :

[Problem]
- String value from registry Proxy override is read and incorrectly decides the 
current connection requires not to use proxy.

[Setup]
- Using urllib under proxy environment.
- Proxy bypass settings are in place. ProxyOverride string value in registry 
ends with ;

[Detail]
https://github.com/python/cpython/blob/2.7/Lib/urllib.py
proxy_bypass_registry has an issue
1. It gets registry value from 
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings ProxyEnable 
string value.
2. Splits the string with ;. And as the registry value ends with ; the split 
list contains a zero length string at the end.
3. Use the split string to re.match. And as there is zero length string at the 
end it, and the result of re.match('', 'anystring', re.I) is always not None.
4. Afterwards connection is attempted without using the proxy, hence connection 
cannot be made

>From line 1617

proxyOverride = proxyOverride.split(';')
# now check if we match one of the registry values.
for test in proxyOverride:
if test == '':
if '.' not in rawHost:
return 1
test = test.replace(".", r"\.") # mask dots
test = test.replace("*", r".*") # change glob sequence
test = test.replace("?", r".")  # change glob char
for val in host:
# print "%s <--> %s" %( test, val )
if re.match(test, val, re.I):
return 1

--
components: Library (Lib)
messages: 309284
nosy: chansol kim
priority: normal
severity: normal
status: open
title: [urllib] proxy_bypass_registry - extra error handling required for 
ProxyOverride, Windows under proxy environment
type: behavior
versions: Python 2.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com