diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-01-06 13:20:57 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-01-06 13:20:57 -0500 |
commit | 6da989cfe8323418ee1f888287d0d65b21b60c1d (patch) | |
tree | 4f8006b94cfb20fc09a9eaa2a24d00a675a0a430 | |
parent | 2d8d6d1ebfd62ebc6da931170d949d8c02f67b76 (diff) | |
parent | b4977d1aa9366cdb1475664bcf1486fbfdf5a166 (diff) | |
download | tor-6da989cfe8323418ee1f888287d0d65b21b60c1d.tar.gz tor-6da989cfe8323418ee1f888287d0d65b21b60c1d.zip |
Merge remote-tracking branch 'tor-github/pr/1612' into maint-0.4.2
-rw-r--r-- | changes/bug32771 | 4 | ||||
-rw-r--r-- | changes/ticket32765 | 4 | ||||
-rw-r--r-- | src/lib/confmgt/structvar.c | 4 | ||||
-rw-r--r-- | src/lib/log/util_bug.h | 6 |
4 files changed, 14 insertions, 4 deletions
diff --git a/changes/bug32771 b/changes/bug32771 new file mode 100644 index 0000000000..606bcf4be4 --- /dev/null +++ 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 new file mode 100644 index 0000000000..a9663a5df3 --- /dev/null +++ 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 index de678d18c8..7a3b8c7df2 100644 --- 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 index c3141754de..030bfa2cc9 100644 --- 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; |