Package: libboost-test1.35-dev Version: 1.35.0-5 Severity: normal Tags: patch
On amd64, valgrind 3.3 complains about uninitialized memory in BoostTest 1.35.0: ==15894== Syscall param sigaltstack(ss) points to uninitialised byte(s) ==15894== at 0x58AB717: sigaltstack (in /lib/libc-2.7.so) ==15894== by 0x41DE7A: boost::detail::signal_handler::~signal_handler() (execution_monitor.ipp:667) ==15894== by 0x41EB21: boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) (execution_monitor.ipp:731) ==15894== by 0x421245: boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) (execution_monitor.ipp:1058) ==15894== by 0x422BB2: boost::unit_test::framework::init(boost::unit_test::test_suite* (*)(int, char**), int, char**) (framework.ipp:258) ==15894== by 0x422DA4: boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) (unit_test_main.ipp:169) ==15894== by 0x423106: main (unit_test_main.ipp:226) ==15894== Address 0x7fefff020 is on thread 1's stack Peter Klotz provided a patch (attached) that fixes this bug by initializing the structure passed to syscall sigaltstack(). Gennadiy Rozental has applied it upstream. -- System Information: Debian Release: 5.0.5 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32.15 (SMP w/2 CPU cores; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libboost-test1.35-dev depends on: ii libboost-test1.35.0 1.35.0-5 components for writing and executi ii libboost1.35-dev 1.35.0-5 Boost C++ Libraries development fi libboost-test1.35-dev recommends no packages. libboost-test1.35-dev suggests no packages. -- no debconf information
diff -Nur boost_1_35_0/boost/test/impl/execution_monitor.ipp boost_1_35_0.patched/boost/test/impl/execution_monitor.ipp --- boost_1_35_0/boost/test/impl/execution_monitor.ipp 2007-11-25 19:07:19.000000000 +0100 +++ boost_1_35_0.patched/boost/test/impl/execution_monitor.ipp 2008-04-11 11:21:28.000000000 +0200 @@ -662,6 +662,7 @@ #ifdef BOOST_TEST_USE_ALT_STACK stack_t sigstk; + std::memset(&sigstk,0,sizeof(stack_t)); sigstk.ss_flags = SS_DISABLE; BOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );