The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2022-02-07T19:38:04Zhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31609Make CIRCUIT_IS_ORIGIN() look at the base magic number2022-02-07T19:38:04ZDavid Gouletdgoulet@torproject.orgMake CIRCUIT_IS_ORIGIN() look at the base magic numberCurrently, `CIRCUIT_IS_ORIGIN()` actually looks at the purpose, not the base magic number:
```
#define CIRCUIT_IS_ORIGIN(c) (CIRCUIT_PURPOSE_IS_ORIGIN((c)->purpose))
```
We should move it to look at the `magic` like `CIRCUIT_IS_ORCIRC(...Currently, `CIRCUIT_IS_ORIGIN()` actually looks at the purpose, not the base magic number:
```
#define CIRCUIT_IS_ORIGIN(c) (CIRCUIT_PURPOSE_IS_ORIGIN((c)->purpose))
```
We should move it to look at the `magic` like `CIRCUIT_IS_ORCIRC()` is doing.
The reason is because I was adding tracing events to the circuit subsystem and I kept having state transition event with a circuit global identifier of 0 which can't be because that value is set just after allocation.
But at that point, the purpose has not been set so `CIRCUIT_IS_ORIGIN()` wasn't returning true.
Furthermore, this made me discover another issue documented in legacy/trac#31608 where if we do make this change, we _must_ fix this ticket else we have a NULL deref.https://gitlab.torproject.org/tpo/web/manual/-/issues/8obfs3 - Update Pluggable Transports section2021-08-23T16:29:53ZGusobfs3 - Update Pluggable Transports sectionTor Browser don't ship obfs3 as default bridge.
So we should update it in this section:
https://tb-manual.torproject.org/transports/
See: https://trac.torproject.org/projects/tor/ticket/31060Tor Browser don't ship obfs3 as default bridge.
So we should update it in this section:
https://tb-manual.torproject.org/transports/
See: https://trac.torproject.org/projects/tor/ticket/31060https://gitlab.torproject.org/tpo/web/manual/-/issues/7Updating section: New screenshot to reflect Tor Browser 8.5.x2021-08-23T16:29:53ZGusUpdating section: New screenshot to reflect Tor Browser 8.5.xIn this section https://tb-manual.torproject.org/updating/ we have an old screenshot showing the onion menu in the left side.In this section https://tb-manual.torproject.org/updating/ we have an old screenshot showing the onion menu in the left side.https://gitlab.torproject.org/tpo/web/support/-/issues/31Add readme file to repo2021-08-23T16:30:12ZemmapeelAdd readme file to repothings the readme should say:
- links to lektor howto
- make clear this is the repo for the website code, and not the support helpdesk, as some users seem to see the 'submit feedback' button as a frontdesk communication channel.things the readme should say:
- links to lektor howto
- make clear this is the repo for the website code, and not the support helpdesk, as some users seem to see the 'submit feedback' button as a frontdesk communication channel.https://gitlab.torproject.org/tpo/core/tor/-/issues/31589hs-v3: Simplify decrypt_desc_layer interface2021-09-16T14:22:37ZGeorge Kadianakishs-v3: Simplify decrypt_desc_layer interfaceHere is how `decrypt_desc_layer` is called:
```
superencrypted_len = decrypt_desc_layer(desc,
desc->plaintext_data.superencrypted_blob,
desc->plaintext_data.superencrypt...Here is how `decrypt_desc_layer` is called:
```
superencrypted_len = decrypt_desc_layer(desc,
desc->plaintext_data.superencrypted_blob,
desc->plaintext_data.superencrypted_blob_size,
NULL, 1, &superencrypted_plaintext);
```
```
encrypted_len = decrypt_desc_layer(desc,
desc->superencrypted_data.encrypted_blob,
desc->superencrypted_data.encrypted_blob_size,
descriptor_cookie, 0, &encrypted_plaintext);
```
There is no point in passing `desc->superencrypted_data.encrypted_blob` and `desc->superencrypted_data.encrypted_blob_size` since we are already passing the whole `desc` and `is_superencrypted_layer` which should be enough to figure out which fields to use.
We could either of the following two things:
- Ditch `desc` as an argument and pass `desc->plaintext_data.blinded_pubkey` explicitly.
- Ditch `encrypted_blob` and `encrypted_blob_size` as arguments and get them off desc.
I prefer the first, but I'm fine with either, since it will make the interface cleaner.Tor: 0.4.2.x-finalhttps://gitlab.torproject.org/tpo/web/support/-/issues/30Update "How do I uninstall Tor Browser" in macOS2021-08-23T16:30:12ZGusUpdate "How do I uninstall Tor Browser" in macOShttps://support.torproject.org/tbb/tbb-28/ says that all you need to do is find the directory you installed tor browser to, and delete that.
But that isn't true on OSX: there, you need to not only delete the tor browser directory, but a...https://support.torproject.org/tbb/tbb-28/ says that all you need to do is find the directory you installed tor browser to, and delete that.
But that isn't true on OSX: there, you need to not only delete the tor browser directory, but also find the profile data directory in /Library/ or something and delete that too.
(The profile data directory is separate because Apple's signing requirements mean that we're not allowed to modify the thing that got installed with a signature.)
GeKo is a good person for asking how exactly to describe this /Library/ thing.
From: https://github.com/torproject/support/issues/12https://gitlab.torproject.org/tpo/web/support/-/issues/29Create a question explaining the difference between Tor Browser, Firefox Priv...2021-08-23T16:30:12ZGusCreate a question explaining the difference between Tor Browser, Firefox Private Tab and Incognito Modejarugajarugahttps://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/31581KDE Desktop file error2022-10-06T01:19:17ZTracKDE Desktop file errorThe freedesktop spec for .desktop files requires the '\' char be escaped. In your desktop file, the Exec= command contains a continuation char with the rest of the command on the next line. Kwinini flags that as an error, no '='.
To fix...The freedesktop spec for .desktop files requires the '\' char be escaped. In your desktop file, the Exec= command contains a continuation char with the rest of the command on the next line. Kwinini flags that as an error, no '='.
To fix, replace the end of the Exec command with "\\" which escapes the bash continuation char.
Tor v8.5.4
**Trac**:
**Username**: Psnarfhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31579Space out the arguments to the cell functions in rend_process_relay_cell()2020-06-27T13:49:31ZNeel Chauhanneel@neelc.orgSpace out the arguments to the cell functions in rend_process_relay_cell()In the `switch (command) {` statement in `rend_process_relay_cell()`, arguments to the functions corresponding to cells aren't spaced, like:
```
r = hs_intro_received_establish_intro(or_circ,payload,length);
```In the `switch (command) {` statement in `rend_process_relay_cell()`, arguments to the functions corresponding to cells aren't spaced, like:
```
r = hs_intro_received_establish_intro(or_circ,payload,length);
```Tor: 0.4.2.x-finalNeel Chauhanneel@neelc.orgNeel Chauhanneel@neelc.orghttps://gitlab.torproject.org/tpo/core/tor/-/issues/31545CID 1452819: nul-terminated string handling, possibly spurious2020-06-27T13:49:33ZteorCID 1452819: nul-terminated string handling, possibly spuriousBug introduced by legacy/trac#21003, copying sponsors and tags.
```
/src/feature/nodelist/describe.c: 77 in format_node_description()
71 }
72 if (addr32h && has_addr) {
73 memcpy(cp, " and ", 5);
74 cp += 5;
...Bug introduced by legacy/trac#21003, copying sponsors and tags.
```
/src/feature/nodelist/describe.c: 77 in format_node_description()
71 }
72 if (addr32h && has_addr) {
73 memcpy(cp, " and ", 5);
74 cp += 5;
75 }
76 if (has_addr) {
CID 1452819: (STRING_NULL)
Passing unterminated string "cp" to "tor_addr_to_str", which expects a null-terminated string.
77 tor_addr_to_str(cp, addr, TOR_ADDR_BUF_LEN, 1);
78 }
79
80 return buf;
81 }
82
/src/feature/nodelist/describe.c: 70 in format_node_description()
64 cp += 4;
65 }
66 if (addr32h) {
67 struct in_addr in;
68 in.s_addr = htonl(addr32h);
69 tor_inet_ntoa(&in, cp, INET_NTOA_BUF_LEN);
CID 1452819: (STRING_NULL)
Passing unterminated string "cp" to "strlen", which expects a null-terminated string.
70 cp += strlen(cp);
71 }
72 if (addr32h && has_addr) {
73 memcpy(cp, " and ", 5);
74 cp += 5;
75 }
```
I think the best fix for this issue is using strncpy() rather than memcpy().Tor: 0.4.2.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31478CodeStructure.md is not markdown compliant2021-07-22T16:19:44ZTracCodeStructure.md is not markdown compliantHello,
While going through the Tor project documentation, I saw a TODO in the file `doc/HACKING/CodeStructure.md` which is currently using a malformed markdown.
I will re-format the documentation in this file if that's fine for you.
*...Hello,
While going through the Tor project documentation, I saw a TODO in the file `doc/HACKING/CodeStructure.md` which is currently using a malformed markdown.
I will re-format the documentation in this file if that's fine for you.
**Trac**:
**Username**: aveuillerTor: 0.4.2.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31477Practracker integration tests for headers and includes2021-09-16T14:22:37ZNick MathewsonPractracker integration tests for headers and includesWe added new practracker features in legacy/trac#31175 and legacy/trac#31176, but those were written before practracker had integration tests (legacy/trac#31263). We should add them to the practracker tests.We added new practracker features in legacy/trac#31175 and legacy/trac#31176, but those were written before practracker had integration tests (legacy/trac#31263). We should add them to the practracker tests.Tor: 0.4.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31476Practracker: document new features2021-09-16T14:22:37ZNick MathewsonPractracker: document new featuresOn 31176, asn notes:
>We should update the file-level comment of practracker.py to mention that we are now checking for include dependecies too. Same goes for the header of exceptions.txt .
>
>And maybe it's time to make a small README ...On 31176, asn notes:
>We should update the file-level comment of practracker.py to mention that we are now checking for include dependecies too. Same goes for the header of exceptions.txt .
>
>And maybe it's time to make a small README file to specify all the metrics that practracker is currently looking for, before they become too many?
This is a good ideaTor: 0.4.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/web/support/-/issues/14Include GetTor link to https://support.torproject.org/censorship/censorship-3/2021-08-23T16:30:49ZGusInclude GetTor link to https://support.torproject.org/censorship/censorship-3/This answer needs to link to https://gettor.torproject.org/This answer needs to link to https://gettor.torproject.org/https://gitlab.torproject.org/tpo/web/support/-/issues/13Migrate how to report bugs and feedback to support portal2021-08-23T16:30:49ZGusMigrate how to report bugs and feedback to support portalMigrate this page to support portal:
https://trac.torproject.org/projects/tor/wiki/doc/community/HowToReportBugFeedbackMigrate this page to support portal:
https://trac.torproject.org/projects/tor/wiki/doc/community/HowToReportBugFeedbackhttps://gitlab.torproject.org/tpo/web/support/-/issues/4Grammar mistake in TBB-12 question2021-08-23T16:30:49ZGusGrammar mistake in TBB-12 questionhttps://support.torproject.org/tbb/tbb-12/ ( from https://support.torproject.org/#faq )
Replace
"and we recommend you do not enable it."
with
"and we recommend you to not enable it."https://support.torproject.org/tbb/tbb-12/ ( from https://support.torproject.org/#faq )
Replace
"and we recommend you do not enable it."
with
"and we recommend you to not enable it."https://gitlab.torproject.org/tpo/core/tor/-/issues/31338Practracker --list-overbroad produces confusing output when there is an excep...2020-06-27T13:49:42ZteorPractracker --list-overbroad produces confusing output when there is an exceptionconnection_control_process_inbuf() is 115 lines long, but the exceptions file says it should be 113.
This line is spurious and should not appear in the output:
```
problem function-size /src/feature/control/control.c:connection_control_...connection_control_process_inbuf() is 115 lines long, but the exceptions file says it should be 113.
This line is spurious and should not appear in the output:
```
problem function-size /src/feature/control/control.c:connection_control_process_inbuf() 113 -> 0
```
Ideally, practracker should log a message that there are no over-broad exceptions, but there are violations.
Here is the full output:
```
$ scripts/maint/practracker/practracker.py --list-overbroad
problem function-size /src/feature/control/control.c:connection_control_process_inbuf() 115
FAILURE: practracker found 1 new problem(s) in the code: see warnings above.
Please fix the problems if you can, and update the exceptions file
(./scripts/maint/practracker/./exceptions.txt) if you can't.
See doc/HACKING/HelpfulTools.md for more information on using practracker.
You can disable this message by setting the TOR_DISABLE_PRACTRACKER environment
variable.
problem function-size /src/feature/control/control.c:connection_control_process_inbuf() 113 -> 0
Exit 1
```Tor: 0.4.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/31321Add cc -> gcc link to projects/gcc2022-08-05T15:06:01ZboklmAdd cc -> gcc link to projects/gccThere are a few places where we add a `cc -> gcc` symbolic link:
```
projects/clang/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/firefox/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/llvm/build: ln -s gcc /var/tmp/dist/gcc/...There are a few places where we add a `cc -> gcc` symbolic link:
```
projects/clang/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/firefox/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/llvm/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/nasm/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
projects/node/build: ln -s gcc /var/tmp/dist/gcc/bin/cc
```
Instead of creating this link in each project where it is needed, maybe we could create it only one time, during the build of gcc in `projects/gcc/build`.Pier Angelo VendramePier Angelo Vendramehttps://gitlab.torproject.org/tpo/core/tor/-/issues/31311practracker: do not include unwanted files in distribution2021-09-16T14:23:38ZNick Mathewsonpractracker: do not include unwanted files in distributionRight now, "make dist" grabs the entire contents of the practracker directory, including temporary files. That's not a great idea.Right now, "make dist" grabs the entire contents of the practracker directory, including temporary files. That's not a great idea.Tor: 0.4.1.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31309Add envvar to pass options to practracker2021-09-16T14:23:38ZNick MathewsonAdd envvar to pass options to practrackerOn legacy/trac#30752, catalyst notes:
>The Makefile should provide a way to pass command line options in to practracker from the environment, so CI won't have to run practracker by bypassing the Makefile. This can be useful if we want to...On legacy/trac#30752, catalyst notes:
>The Makefile should provide a way to pass command line options in to practracker from the environment, so CI won't have to run practracker by bypassing the Makefile. This can be useful if we want to run with less-friendly options during cron builds, for example.
I agree.Tor: 0.4.2.x-finalNick MathewsonNick Mathewson