diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-01-06 13:24:01 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-01-06 13:24:01 -0500 |
commit | f1173a63fb905922a2ef13588a1999d85a24a9f6 (patch) | |
tree | 5455149219b45568dfacaf060ba7c166685ef58e | |
parent | 77188ef36e9163b87f89135ff459f21100614b1e (diff) | |
parent | 6da989cfe8323418ee1f888287d0d65b21b60c1d (diff) | |
download | tor-f1173a63fb905922a2ef13588a1999d85a24a9f6.tar.gz tor-f1173a63fb905922a2ef13588a1999d85a24a9f6.zip |
Merge branch 'maint-0.4.2' into release-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; |