Merge branch 'maint-0.2.7' into release-0.2.7
This commit is contained in:
commit
9d12bdaa1d
|
@ -0,0 +1,4 @@
|
|||
o Minor bugfixes (compilation):
|
||||
- Don't try to use the pthrad_condattr_setclock() function unless
|
||||
it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
|
||||
17819; bugfix on 0.2.6.3-alpha.
|
|
@ -0,0 +1,3 @@
|
|||
o Minor bugfixes (compilation):
|
||||
- Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix on
|
||||
tor-0.2.5.2-alpha.
|
|
@ -425,6 +425,7 @@ AC_CHECK_FUNCS(
|
|||
if test "$bwin32" != true; then
|
||||
AC_CHECK_HEADERS(pthread.h)
|
||||
AC_CHECK_FUNCS(pthread_create)
|
||||
AC_CHECK_FUNCS(pthread_condattr_setclock)
|
||||
fi
|
||||
|
||||
if test "$bwin32" = true; then
|
||||
|
|
|
@ -62,16 +62,16 @@ static tor_mutex_t cb_buf_mutex;
|
|||
* ucontext_t structure.
|
||||
*/
|
||||
void
|
||||
clean_backtrace(void **stack, int depth, const ucontext_t *ctx)
|
||||
clean_backtrace(void **stack, size_t depth, const ucontext_t *ctx)
|
||||
{
|
||||
#ifdef PC_FROM_UCONTEXT
|
||||
#if defined(__linux__)
|
||||
const int n = 1;
|
||||
const size_t n = 1;
|
||||
#elif defined(__darwin__) || defined(__APPLE__) || defined(__OpenBSD__) \
|
||||
|| defined(__FreeBSD__)
|
||||
const int n = 2;
|
||||
const size_t n = 2;
|
||||
#else
|
||||
const int n = 1;
|
||||
const size_t n = 1;
|
||||
#endif
|
||||
if (depth <= n)
|
||||
return;
|
||||
|
@ -89,14 +89,14 @@ clean_backtrace(void **stack, int depth, const ucontext_t *ctx)
|
|||
void
|
||||
log_backtrace(int severity, int domain, const char *msg)
|
||||
{
|
||||
int depth;
|
||||
size_t depth;
|
||||
char **symbols;
|
||||
int i;
|
||||
size_t i;
|
||||
|
||||
tor_mutex_acquire(&cb_buf_mutex);
|
||||
|
||||
depth = backtrace(cb_buf, MAX_DEPTH);
|
||||
symbols = backtrace_symbols(cb_buf, depth);
|
||||
symbols = backtrace_symbols(cb_buf, (int)depth);
|
||||
|
||||
tor_log(severity, domain, "%s. Stack trace:", msg);
|
||||
if (!symbols) {
|
||||
|
@ -120,7 +120,7 @@ static void
|
|||
crash_handler(int sig, siginfo_t *si, void *ctx_)
|
||||
{
|
||||
char buf[40];
|
||||
int depth;
|
||||
size_t depth;
|
||||
ucontext_t *ctx = (ucontext_t *) ctx_;
|
||||
int n_fds, i;
|
||||
const int *fds = NULL;
|
||||
|
@ -139,7 +139,7 @@ crash_handler(int sig, siginfo_t *si, void *ctx_)
|
|||
|
||||
n_fds = tor_log_get_sigsafe_err_fds(&fds);
|
||||
for (i=0; i < n_fds; ++i)
|
||||
backtrace_symbols_fd(cb_buf, depth, fds[i]);
|
||||
backtrace_symbols_fd(cb_buf, (int)depth, fds[i]);
|
||||
|
||||
abort();
|
||||
}
|
||||
|
@ -174,8 +174,8 @@ 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;
|
||||
int depth = backtrace(cb_buf, MAX_DEPTH);
|
||||
symbols = backtrace_symbols(cb_buf, depth);
|
||||
size_t depth = backtrace(cb_buf, MAX_DEPTH);
|
||||
symbols = backtrace_symbols(cb_buf, (int) depth);
|
||||
if (symbols)
|
||||
free(symbols);
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ void clean_up_backtrace_handler(void);
|
|||
#ifdef EXPOSE_CLEAN_BACKTRACE
|
||||
#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && \
|
||||
defined(HAVE_BACKTRACE_SYMBOLS_FD) && defined(HAVE_SIGACTION)
|
||||
void clean_backtrace(void **stack, int depth, const ucontext_t *ctx);
|
||||
void clean_backtrace(void **stack, size_t depth, const ucontext_t *ctx);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -185,7 +185,8 @@ tor_cond_init(tor_cond_t *cond)
|
|||
return -1;
|
||||
}
|
||||
|
||||
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) \
|
||||
&& defined(HAVE_PTHREAD_CONDATTR_SETCLOCK)
|
||||
/* Use monotonic time so when we timedwait() on it, any clock adjustment
|
||||
* won't affect the timeout value. */
|
||||
if (pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC)) {
|
||||
|
|
|
@ -1598,7 +1598,7 @@ sigsys_debugging(int nr, siginfo_t *info, void *void_context)
|
|||
const char *syscall_name;
|
||||
int syscall;
|
||||
#ifdef USE_BACKTRACE
|
||||
int depth;
|
||||
size_t depth;
|
||||
int n_fds, i;
|
||||
const int *fds = NULL;
|
||||
#endif
|
||||
|
@ -1630,7 +1630,7 @@ sigsys_debugging(int nr, siginfo_t *info, void *void_context)
|
|||
#ifdef USE_BACKTRACE
|
||||
n_fds = tor_log_get_sigsafe_err_fds(&fds);
|
||||
for (i=0; i < n_fds; ++i)
|
||||
backtrace_symbols_fd(syscall_cb_buf, depth, fds[i]);
|
||||
backtrace_symbols_fd(syscall_cb_buf, (int)depth, fds[i]);
|
||||
#endif
|
||||
|
||||
#if defined(DEBUGGING_CLOSE)
|
||||
|
|
Loading…
Reference in New Issue