From: Nick Mathewson Date: Wed, 11 Feb 2015 14:44:07 +0000 (-0500) Subject: Fix crash on glibc __libc_message() X-Git-Tag: tor-0.2.6.3-alpha~57^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5f6d13e4cc0d8e823888694bb2c3415d80690ab;p=thirdparty%2Ftor.git Fix crash on glibc __libc_message() __libc_message() tries to open /dev/tty with O_RDWR, but the sandbox catches that and calls it a crash. Instead, I'm making the sandbox setenv LIBC_FATAL_STDERR_, so that glibc uses stderr instead. Fix for 14759, bugfix on 0.2.5.1-alpha --- diff --git a/changes/bug14759 b/changes/bug14759 new file mode 100644 index 0000000000..82fe97c1c0 --- /dev/null +++ b/changes/bug14759 @@ -0,0 +1,6 @@ + o Minor bugfixes (sandbox): + - Allow Glibc fatal errors to be sent to stderr before Tor exits. + Previously, glibc would try to write them to /dev/tty, and the sandbox + would trap the call and make Tor exit prematurely. Fixes bug 14759; + bugfix on 0.2.5.1-alpha. + diff --git a/src/common/sandbox.c b/src/common/sandbox.c index 450b04a6f7..57847e1376 100644 --- a/src/common/sandbox.c +++ b/src/common/sandbox.c @@ -1676,6 +1676,9 @@ register_cfg(sandbox_cfg_t* cfg) static int initialise_libseccomp_sandbox(sandbox_cfg_t* cfg) { + /* Prevent glibc from trying to open /dev/tty on fatal error */ + setenv("LIBC_FATAL_STDERR_", "1", 1); + if (install_sigsys_debugging()) return -1;