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

Reply via email to