From: teor Date: Sun, 20 Oct 2019 10:01:56 +0000 (+1000) Subject: err: Use the correct type for cb_buf X-Git-Tag: tor-0.4.2.3-alpha~21^2^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0a5ce8280c7b7e4121237db5a29ea9e0084ffb05;p=thirdparty%2Ftor.git err: Use the correct type for cb_buf Fixes bug 32060; bug not in any released version of tor. Resolves CID 1454761. --- diff --git a/src/lib/err/backtrace.c b/src/lib/err/backtrace.c index bc3ca286ec..ce8ddcd7c0 100644 --- a/src/lib/err/backtrace.c +++ b/src/lib/err/backtrace.c @@ -85,7 +85,7 @@ static pthread_mutex_t cb_buf_mutex = PTHREAD_MUTEX_INITIALIZER; /** Lock and return a static stack pointer buffer that can hold up to * MAX_DEPTH function pointers. */ -static void * +static void ** lock_cb_buf(void) { /* Lock the mutex first, before even declaring the buffer. */ @@ -102,7 +102,7 @@ lock_cb_buf(void) /** Unlock the static stack pointer buffer. */ static void -unlock_cb_buf(void *cb_buf) +unlock_cb_buf(void **cb_buf) { memset(cb_buf, 0, SIZEOF_CB_BUF); pthread_mutex_unlock(&cb_buf_mutex); @@ -149,7 +149,7 @@ log_backtrace_impl(int severity, log_domain_mask_t domain, const char *msg, char **symbols; size_t i; - void *cb_buf = lock_cb_buf(); + void **cb_buf = lock_cb_buf(); depth = backtrace(cb_buf, MAX_DEPTH); symbols = backtrace_symbols(cb_buf, (int)depth); @@ -183,7 +183,7 @@ crash_handler(int sig, siginfo_t *si, void *ctx_) int n_fds, i; const int *fds = NULL; - void *cb_buf = lock_cb_buf(); + void **cb_buf = lock_cb_buf(); (void) si; @@ -214,7 +214,7 @@ dump_stack_symbols_to_error_fds(void) const int *fds = NULL; size_t depth; - void *cb_buf = lock_cb_buf(); + void **cb_buf = lock_cb_buf(); depth = backtrace(cb_buf, MAX_DEPTH); @@ -256,7 +256,7 @@ install_bt_handler(void) * libc has pre-loaded the symbols we need to dump things, so that later * reads won't be denied by the sandbox code */ char **symbols; - void *cb_buf = lock_cb_buf(); + void **cb_buf = lock_cb_buf(); size_t depth = backtrace(cb_buf, MAX_DEPTH); symbols = backtrace_symbols(cb_buf, (int) depth); if (symbols)