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

2010-07-27 Thread James Youngman
On Tue, Jul 27, 2010 at 4:36 AM, Aurelien Jarno aurel...@aurel32.net wrote:

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

 Looking more in details, it doesn't seems to be any problem in the
 dynamic linker. The errors reported are in string comparisons function,
 which are optimized. They access data further than the size of the data,
 in order to do parallel comparisons, however they always make sure not
 to cross a page boundary. Valgrind is not clever enough to understand
 this method, so it report the error.

 I am therefore reassigning this bug to this package, so that this
 problem can be ignored.

That seems an unlikely explanation to me because it doesn't seem to be
consistent with what Valgrind actually does.

Valgrind is complaining not because the data being accessed is not
mapped.   It is complaining because

1. the initial state of some bits is indeterminate (this is allowed,
it's fine and does not generate a diagnostic)
AND
2. the flow control in the code depends on the state of those uninitialised bits

If you're saying that Valgrind is mis-repoting, are you saying that
the relevant bits are in fact initialised, or are you saying that the
result of the function *does not depend* on the state of those bits,
even though a branch is taken-or-not depending on their state?

Thanks,
James.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2010-07-26 Thread Aurelien Jarno
reassign 580210 valgrind
thanks

On Tue, May 04, 2010 at 11:33:29AM +0100, James Youngman wrote:
 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.)

Looking more in details, it doesn't seems to be any problem in the
dynamic linker. The errors reported are in string comparisons function,
which are optimized. They access data further than the size of the data,
in order to do parallel comparisons, however they always make sure not
to cross a page boundary. Valgrind is not clever enough to understand
this method, so it report the error.

I am therefore reassigning this bug to this package, so that this
problem can be ignored.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2010-05-04 Thread James Youngman
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:



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org