[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#580210: libc6: valgrind reports error in ld-2.10.2.so: use of uninitialised value



Package: libc6
Version: 2.10.2-6
Severity: normal


This bug is not a dupe of #456303, since it doesn't go away if we pass
--run-libc-freeres=no to Valgrind.

The problem is that parts of the dynamic linker code are executing
branch instructions which depend on the value of data (e.g. variables)
which have not been initialised.  That's precisely the kind of problem
that Valgrind detects.

We have a choice of (at least) two options:
1. Fix the bug in the dynamic linker
2. Shrug and configure valgrind to ignore the problem so that valgrind is 
   still useful for people's programs.

Clearly (1) is better but (2) is available for the case where we can't
fix the bug in the dynamic linker (or upstream refuses the patch,
etc.)

The shell script below demonstrates the problem.  It builds and runs a
C program that doesn't do anything.  The program is run under
valgrind, so you can see the reports of problems in the dynamic
linker.

#! /bin/sh

if ! tcd=$(mktemp -d)
then
    exit 1
fi

(
cd "$tcd"
cat > donothing.c <<'EOF'
int main(int argc, char *argv[])
{
  return 0;
}
EOF
cat donothing.c
cc -ggdb -Wall -o ./donothing donothing.c
valgrind --run-libc-freeres=no  ./donothing
rm -f donothing donothing.c
)
rmdir "$tcd"
####### END 

If you remove the --run-libc-freeres=no option, you will _also_ get
symptoms of bug #456303, but that is a separate problem.





-- System Information:
Debian Release: squeeze/sid
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32.9-custom.jy2 (SMP w/4 CPU cores)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libc6 depends on:
ii  libc-bin                      2.10.2-6   Embedded GNU C Library: Binaries
ii  libgcc1                       1:4.4.2-9  GCC support library

libc6 recommends no packages.

Versions of packages libc6 suggests:
ii  debconf [debconf-2.0]         1.5.32     Debian configuration management sy
ii  glibc-doc                     2.10.2-6   Embedded GNU C Library: Documentat
ii  locales                       2.10.2-6   Embedded GNU C Library: National L

-- debconf information:
  glibc/upgrade: true
  glibc/disable-screensaver:
  glibc/restart-failed:
  glibc/restart-services:



Reply to: