summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-01-06 13:20:57 -0500
committerNick Mathewson <nickm@torproject.org>2020-01-06 13:20:57 -0500
commit6da989cfe8323418ee1f888287d0d65b21b60c1d (patch)
tree4f8006b94cfb20fc09a9eaa2a24d00a675a0a430
parent2d8d6d1ebfd62ebc6da931170d949d8c02f67b76 (diff)
parentb4977d1aa9366cdb1475664bcf1486fbfdf5a166 (diff)
downloadtor-6da989cfe8323418ee1f888287d0d65b21b60c1d.tar.gz
tor-6da989cfe8323418ee1f888287d0d65b21b60c1d.zip
Merge remote-tracking branch 'tor-github/pr/1612' into maint-0.4.2
-rw-r--r--changes/bug327714
-rw-r--r--changes/ticket327654
-rw-r--r--src/lib/confmgt/structvar.c4
-rw-r--r--src/lib/log/util_bug.h6
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;