-
Notifications
You must be signed in to change notification settings - Fork 0
Description
gopher://example.com/1a%78b and gopher://example.com/1axb should be equivalent, but they are not. The first one sends a%78b to the server, and the second one sends axb to the server.
As another example, a URL of gopher://example.com/7search%09string should separate search and string with a tab byte in the request, but those are instead separated by a literal %09.
This issue actually occurs with a Gopher menu item that has a selector that contains a space—somewhere in Dillo the space is encoded in the URL as %20 (which is correct), but the percent-encoded space in the URL is not decoded back to a space by the plugin.
I haven't tested it, but from looking at the source code it seems like a # in a selector is probably not handled well either. Any # in a selector must be encoded as %23 so that it's not interpreted as a fragment separator, and then %23 must be decoded back to # before it's sent to the server.