Tor does not handle quotes when parsing *Port configuration lines, and uses only the first space-separated part of the value as the port. It's not possible to have a unix socket in a path containing spaces.
A second related bug: Tor does not error when garbage flags are included at the end of a *Port configuration line.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
I'll take this. The functionality here is likely needed for the future Tor Browser sandboxing efforts. We should also re-examine our control port stuff that deals with paths to ensure sanity.
Trac: Owner: N/Ato yawning Status: new to assigned
Hi, Yawning! I'm deferring these tickets assigned to you from 0.2.9 to 0.2.???, since you're going to be out for September. But if you wind up wanting to do any of them for 0.2.9 anyway, please feel free to move them back.
mcs/brade: Do you have a preferred syntax for this fix?
We do not have a syntax in mind; anything that works well and fits with tor's configuration philosophy is good as far as we are concerned. The syntax suggested by nickm in #tor-dev would be fine:
SocksPort unix:"/foo/bar/baz quux/socket" IPv6Traffic PreferIPv6Automap
This change should work for Tor Browser. We need to modify Tor Launcher to use the new quoted syntax for the ControlPort and SocksPort options, and we need to modify Torbutton to correctly parse responses to GETINFO net/listeners/socks. But Kathy and I made enough of a start on the Tor Launcher and Torbutton changes to convince ourselves that this tor patch works.
This lgtm and works well for SocksPort, HS Port and ControlPort but doesn't work with ControlSocket which takes a path (without unix: prefix though). Do we care about that one not having the possibility to put spaces or quoted string?
Here is an example of it not working:
ControlSocket "/tmp/a control socket"
Apart from that, lgtm;
Trac: Status: needs_review to needs_information Reviewer: N/Ato dgoulet