Closed Bug 13313 Opened 25 years ago Closed 25 years ago

nsStdURL::ReplaceDotMess treats \ after # and ? incorrectly

Categories

(Core :: Networking, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: hjtoi-bugzilla, Assigned: gagan)

References

Details

Attachments

(1 file)

ReplaceDotMess() switches all \ to / in URL. This is wrong, it should not touch them after # or ?.
Target Milestone: M14
Blocks: 13449
After thinking more about this, I realized this could be a no-win situation. Clearly, ReplaceDotMess() should fix the problems in any part of the URL that is part of a file path/name. But it is impossible to tell for sure what is a path and what is not. Look at: http://some.com/foo?\cgi-bin\myquery;par1\bar;"\*" Quite obviously "\cgi-bin\myquery" is a path and conversion should happen. But what about "par1\bar"? It could be a path or not. As to '"\*"', it looks like it is just a string to be passed so we probably shouldn't touch it. Should read the URL spec again to see if it has anything to say...
I have a fix for this, waiting for review ... see bug 13311 ... it is part of a bigger patch to solve some more URL parsing problems. As to the additional comments, I think heikki is right, it is a no win situation. Using ReplaceDotMess only on the path (everything before ;?#) seems to me is doing the least damage.
fix checked in ...
QA Contact: paulmac → tever
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
thanks Andreas.
Bulk move of all Necko (to be deleted component) bugs to new Networking component.
Verified these in debugger, nsStdURL:GetSpec() with following URLs: target.html?/1/3#/5/6 target.html?/1/3#/5/6/slot('?#/') target.html?/1/3#/5/6/slot('\?#/') All the member variables seem to hold correct values.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: