URL Parse Split incorreclty interpret proxy pw, which include '?'
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 36k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 558
Description
Hi,
I have exported the env var for http proxy, where the Username and password is included in the URL.
The password of the user includes an '?', which is the reason, why the URL string is not correctly processed.
The URL
http_proxy='http://<username>:<pass_with_?>@<server>:<port>'
When the method splits:
https://github.com/python/cpython/blob/53d9cd95cd91f1a291a3923acb95e0e86942291a/Lib/urllib/parse.py#L477
It splits at the ? of the password.
Therefore resulting into
File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 950, in proxy_info_from_url
port = int(port)
ValueError: invalid literal for int() with base 10: 'p'
if the URL would be:
http://user:p?assword@server:port
Regards
Nam
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Lib/urllib/parse.py at the URL-splitting code linked in the issue, and reproduce parsing of http://user:p?assword@server:port. Confirm the expected handling for a question mark in proxy credentials, then verify that the example no longer treats part of the password as a separate URL component.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100