Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
[3.9] bpo-43882 Remove the newline, and tab early. From query and fragments.#25853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
Lib/test/test_urlparse.py Outdated
@@ -614,32 +614,40 @@ def test_urlsplit_attributes(self): | |||
def test_urlsplit_remove_unsafe_bytes(self): | |||
# Remove ASCII tabs and newlines from input | |||
url = "http://www.python.org/java\nscript:\talert('msg\r\n')/#frag" | |||
url = "http\t://www.python.org/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
i suggest also adding a \r in the middle of the netloc for good measure.www.python\r.org
perhaps?
bedevere-bot commentedMay 3, 2021
When you're done making the requested changes, leave the comment: |
fwiw this PR is against 3.9. i assume you'll "backport to main and 3.10" once those aren't actively being release branched and renamed? |
Yes, exactly. I wanted to time window to be utilized for 3.9 and 3.8. |
bedevere-bot commentedMay 3, 2021
@orsenthil: Please replace |
for b in _UNSAFE_URL_BYTES_TO_REMOVE: | ||
url = url.replace(b, "") | ||
scheme = scheme.replace(b, "") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
According to thetypeshed, thescheme
argument tourlparse
isOptional
. However, with this change, a value ofNone
will result in an error like:
AttributeError: 'NoneType' object has no attribute 'replace'
I'm not sure whether the typeshed is wrong or if this line should be guarded withif scheme is not None
, but we should definitely fix one or the other and perhaps improve the documentation on this option.
Thanks to@branchvincent for doing the digging and reporting this issue to me.
Uh oh!
There was an error while loading.Please reload this page.
Based on the review comment#25726 (review)
Moving the fix for removing newline and tabs early to include both query strings and fragments, (Entire URL).
https://bugs.python.org/issue43882