- Jan 13, 2020
-
-
David Goulet authored
When looking up an entry in the rend_cache, stop asserting that it exists but rather confirm it exists and if not, return that no entry was found. The reason for that is because the hs_circ_cleanup_on_free() function (which can end up looking at the rend_cache) can be called from the circuit_free_all() function that is called _after_ the rend cache is cleaned up in tor_free_all(). We could fix the free all ordering but then it will just hide a future bug. Instead, handle a missing rend_cache as a valid use case as in while we are in the cleanup process. As Tor becomes more modular, it is getting more and more difficult to ensure subsystem callstack ordering thus this fix aims at making the HSv2 subsystem more robust at being called while tor is pretty much in any kind of state. Fixes #32847. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- Jan 09, 2020
-
-
-
-
Nick Mathewson authored
-
Nick Mathewson authored
We never used them very much, and although they had potential to clarify some of our tests, they also made some of the logic harder for people to follow. Clang-format can't make head or tail of them, so the time has come to say goodbye to them.
-
Nick Mathewson authored
This is an automatically generated commit, made with the following kludgey perl script. It results in a number of wide lines, which I'll clean up in a subsequent commit. #/usr/bin/perl -w -i $mod = "NS_MODULE"; $submod = "NS_SUBMODULE"; $last_was_empty = 0; while (<>) { s/\bASPECT\(\s*(\w+)\s*,\s*(\w+)\s*\)/$1_$2/; if (/# *define +NS_MODULE +(\w+)/) { $mod = $1; next; } elsif (/# *define +NS_SUBMODULE +(\w+)/) { $submod = $1; next; } next if (/#undef NS_(SUB)?MODULE/); s/NS\(\s*test_main\s*\)/test_${mod}_${submod}/; s/NS\(\s*(\w+)\s*\)/${mod}_${submod}_$1/g; s/NS_FULL\(\\s*(\w+)\s*,\s*(\w+),\s*(\w+)\s*\)/$1_$2_$3/; s/^(\s*)NS_MOCK\(\s*(\w+)\s*\)/$1MOCK($2,\n$1 ${mod}_${submod}_$2)/; s/NS_UNMOCK\(\s*(\w+)\s*\)/UNMOCK($1)/; s/TEST_CASE\(\s*(\w+)\s*\)/{ "$1", test_${mod}_$1, TT_FORK, NULL, NULL }/; s/TEST_CASE_ASPECT\(\s*(\w+)\s*,\s*(\w+)\s*\)/{ "$1_$2", test_${mod}_$1_$2, TT_FORK, NULL, NULL }/; s/NS_DECL\(\s*([^,]+)\s*,\s*([^,]+)\s*,\s*(\(.*)\);/static $1 ${mod}_${submod}_$2$3;\nATTR_UNUSED static int ${mod}_${submod}_$2_called = 0;/; s/\bCALLED\(\s*(\w+)\s*\)/${mod}_${submod}_$1_called/; if (/^$/) { print if (! $last_was_empty); $last_was_empty = 1; } else { $last_was_empty = 0; print; } if (eof) { $mod = "NS_MODULE"; $submod = "NS_SUBMODULE"; $last_was_empty = 0; } } # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Thu Jan 9 10:26:10 2020 -0500 # # On branch disable_ns_macro # Changes to be committed: # modified: src/test/test_accounting.c # modified: src/test/test_compat_libevent.c # modified: src/test/test_dir.c # modified: src/test/test_dir_handle_get.c # modified: src/test/test_dns.c # modified: src/test/test_options.c # modified: src/test/test_procmon.c # modified: src/test/test_rendcache.c # modified: src/test/test_router.c # modified: src/test/test_routerset.c # modified: src/test/test_status.c # modified: src/test/test_tortls.c # modified: src/test/test_tortls_openssl.c # modified: src/test/test_util_format.c # modified: src/test/test_util_process.c # # Untracked files: # experiments/ # locate_options.sh # un_ns.pl # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Thu Jan 9 10:26:10 2020 -0500 # # On branch disable_ns_macro # Changes to be committed: # modified: src/test/test_accounting.c # modified: src/test/test_compat_libevent.c # modified: src/test/test_dir.c # modified: src/test/test_dir_handle_get.c # modified: src/test/test_dns.c # modified: src/test/test_options.c # modified: src/test/test_procmon.c # modified: src/test/test_rendcache.c # modified: src/test/test_router.c # modified: src/test/test_routerset.c # modified: src/test/test_status.c # modified: src/test/test_tortls.c # modified: src/test/test_tortls_openssl.c # modified: src/test/test_util_format.c # modified: src/test/test_util_process.c # # Untracked files: # experiments/ # locate_options.sh # un_ns.pl #
-
Nick Mathewson authored
This will help avoid wide lines in our output.
-
Nick Mathewson authored
This is going to make my script happier; these lines will soon disappear.
-
Nick Mathewson authored
When these macros aren't defined, the expansions of the NS macros can get particularly ugly.
-
Nick Mathewson authored
We use bool, so we should include stdbool.
-
Nick Mathewson authored
This frees us from a dependency on include order.
-
Nick Mathewson authored
This change means that authmode.h no longer needs to see or_options_t, and frees us from an ordering dependency.
-
Nick Mathewson authored
Without this change, compilation success depends on include order in several tricky ways.
-
Nick Mathewson authored
This prevents a dependency on include order.
-
Nick Mathewson authored
This fixes a case where our compilation would depend on include order.
-
Nick Mathewson authored
Without this include, our compilation depends more on include order.
-
Nick Mathewson authored
This lets us avoid a dependency on include order.
-
Nick Mathewson authored
This frees us from some dependencies on include order.
-
Nick Mathewson authored
This frees us from some dependencies on include order.
-
Nick Mathewson authored
Doing this frees us from some assumptions about include order.
-
Nick Mathewson authored
Using these frees us from several dependencies on include order.
-
Nick Mathewson authored
Doing this gives us a valid uint64_t type, freeing us from dependencies on include order.
-
Nick Mathewson authored
This frees us from a dependency on include order.
-
Nick Mathewson authored
This frees us from some dependencies on include order.
-
Nick Mathewson authored
This gives us the definition of tor_x509_cert_impl_t, and makes us less dependent on include order.
-
Nick Mathewson authored
Otherwise our compilation depends on include order.
-
Nick Mathewson authored
Also, include torerr.h from ht.h if we are using raw_assert. Otherwise, our includes need to be ordered so that ht.h comes after util_log.h.
-
Nick Mathewson authored
We were actually omitting the semicolon in a few places, leading to confusing indentation and some cocci failures.
-
Nick Mathewson authored
This is an automated commit, generated by: perl -i -pe 'next if /define/; s/((?:ENABLE|DISABLE)_GCC_WARNING)\(([A-Za-z0-9_\-]+)\)/$1(\"-W$2\")/' src/*/*/*.[ch] src/*/*.[ch]
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Jan 08, 2020
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
teor authored
-
- Jan 07, 2020
-
-
Roger Dingledine authored
-
If they are inconsistent, output a raw bug log. Part of 32845.
-
Nick Mathewson authored
-
Nick Mathewson authored
Also, add a CTASSERT() to make sure that we don't let this array get out-of-sync again. Found by coverity; this is CID 1457528.
-
teor authored
These test cases are validated differently by some programming languages, because those languages have incorrect UTF-8 implementations. We want to make sure that tor validates them correctly. Closes ticket 32845.
-
Neel Chauhan authored
-