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 );