tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 6da989cfe8323418ee1f888287d0d65b21b60c1d
parent 2d8d6d1ebfd62ebc6da931170d949d8c02f67b76
Author: Nick Mathewson <nickm@torproject.org>
Date:   Mon,  6 Jan 2020 13:20:57 -0500

Merge remote-tracking branch 'tor-github/pr/1612' into maint-0.4.2

Diffstat:
Achanges/bug32771 | 4++++
Achanges/ticket32765 | 4++++
Msrc/lib/confmgt/structvar.c | 4++--
Msrc/lib/log/util_bug.h | 6++++--
4 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/changes/bug32771 b/changes/bug32771 @@ -0,0 +1,4 @@ + o Minor bugfixes (logging, crash): + - Avoid a possible crash when trying to log a (fatal) assertion failure + about mismatched magic numbers in configuration objects. Fixes bug 32771; + bugfix on 0.4.2.1-alpha. diff --git a/changes/ticket32765 b/changes/ticket32765 @@ -0,0 +1,4 @@ + o Minor bugfixes (correctness checks): + - Use GCC/Clang's printf-checking feature to make sure that + tor_assertf() arguments are correctly typed. Fixes bug 32765; + bugfix on 0.4.1.1-alpha. diff --git a/src/lib/confmgt/structvar.c b/src/lib/confmgt/structvar.c @@ -53,8 +53,8 @@ struct_check_magic(const void *object, const struct_magic_decl_t *decl) const uint32_t *ptr = STRUCT_VAR_P(object, decl->magic_offset); tor_assertf(*ptr == decl->magic_val, "Bad magic number on purported %s object. " - "Expected %"PRIu32"x but got "PRIu32"x.", - decl->magic_val, *ptr); + "Expected %"PRIu32"x but got %"PRIu32"x.", + decl->typename, decl->magic_val, *ptr); } /** diff --git a/src/lib/log/util_bug.h b/src/lib/log/util_bug.h @@ -242,10 +242,12 @@ void tor_assertion_failed_(const char *fname, unsigned int line, const char *func, const char *expr, - const char *fmt, ...); + const char *fmt, ...) + CHECK_PRINTF(5,6); void tor_bug_occurred_(const char *fname, unsigned int line, const char *func, const char *expr, - int once, const char *fmt, ...); + int once, const char *fmt, ...) + CHECK_PRINTF(6,7); void tor_abort_(void) ATTR_NORETURN;