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

Bug#351469: empty program triggers valgrind, too



reassign 351469 valgrind
thanks

  those are because the libc often uses things like:

  struct {
    char c;
    int i;
  };

  then performs an action based on if (x->c) which in the CPU loads the
full integer "around" c with its padding, and if the struct hasn't been
fully memset'ed (including padding) valgrind believe the jump depends on
uninitialized value. Valgrind just needs to update its ignore file for
the libc 2.7. That's all.

On Tue, Dec 04, 2007 at 08:25:07AM +0000, Uwe Kleine-König wrote:
> Package: libc6
> Version: 2.7-3
> Followup-For: Bug #351469
> 
> Hello,
> 
> I'm not sure if this should be a bug for itself or only a followup for
> #351469.  I choosed the latter hoping for being less annoying :-)
> 
> Using valgrind 3.2.3-3, I have:
> 
> 	ukleinek@zentaur:/tmp$ cat test.c 
> 	int main(int argc, char **argv)
> 	{
> 	        return 0;
> 	}
> 
> 	ukleinek@zentaur:/tmp$ make test
> 	cc     test.c   -o test
> 
> 	ukleinek@zentaur:/tmp$ valgrind ./test
> 	==22198== Memcheck, a memory error detector.
> 	==22198== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
> 	==22198== Using LibVEX rev 1732, a library for dynamic binary translation.
> 	==22198== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
> 	==22198== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework.
> 	==22198== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
> 	==22198== For more details, rerun with: -v
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015EF7: strlen (in /lib/ld-2.7.so)
> 	==22198==    by 0x400522C: fillin_rpath (in /lib/ld-2.7.so)
> 	==22198==    by 0x4007DB6: _dl_init_paths (in /lib/ld-2.7.so)
> 	==22198==    by 0x4003339: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015D9E: index (in /lib/ld-2.7.so)
> 	==22198==    by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so)
> 	==22198==    by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000C4A: map_doit (in /lib/ld-2.7.so)
> 	==22198==    by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so)
> 	==22198==    by 0x400475F: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015DA9: index (in /lib/ld-2.7.so)
> 	==22198==    by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so)
> 	==22198==    by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000C4A: map_doit (in /lib/ld-2.7.so)
> 	==22198==    by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so)
> 	==22198==    by 0x400475F: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015DB4: index (in /lib/ld-2.7.so)
> 	==22198==    by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so)
> 	==22198==    by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000C4A: map_doit (in /lib/ld-2.7.so)
> 	==22198==    by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so)
> 	==22198==    by 0x400475F: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015F11: strlen (in /lib/ld-2.7.so)
> 	==22198==    by 0x4007817: expand_dynamic_string_token (in /lib/ld-2.7.so)
> 	==22198==    by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000C4A: map_doit (in /lib/ld-2.7.so)
> 	==22198==    by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so)
> 	==22198==    by 0x400475F: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x4015F11: strlen (in /lib/ld-2.7.so)
> 	==22198==    by 0x400A99D: _dl_new_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x40061E4: _dl_map_object_from_fd (in /lib/ld-2.7.so)
> 	==22198==    by 0x4008677: _dl_map_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000C4A: map_doit (in /lib/ld-2.7.so)
> 	==22198==    by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so)
> 	==22198==    by 0x400475F: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x400B08F: _dl_relocate_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4003C16: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== Conditional jump or move depends on uninitialised value(s)
> 	==22198==    at 0x400B09C: _dl_relocate_object (in /lib/ld-2.7.so)
> 	==22198==    by 0x4003C16: dl_main (in /lib/ld-2.7.so)
> 	==22198==    by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x400230A: _dl_start (in /lib/ld-2.7.so)
> 	==22198==    by 0x4000A67: (within /lib/ld-2.7.so)
> 	==22198== 
> 	==22198== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
> 	==22198== malloc/free: in use at exit: 0 bytes in 0 blocks.
> 	==22198== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
> 	==22198== For counts of detected errors, rerun with: -v
> 	==22198== All heap blocks were freed -- no leaks are possible.
> 
> Maybe this is an amd64 issue only?
> 
> Best regards
> Uwe
> 
> -- System Information:
> Debian Release: 4.0
>   APT prefers stable
>   APT policy: (900, 'stable'), (300, 'testing-proposed-updates'), (300, 'testing'), (200, 'unstable'), (2, 'experimental'), (1, 'proposed-updates')
> Architecture: amd64 (x86_64)
> Shell:  /bin/sh linked to /bin/bash
> Kernel: Linux 2.6.22-3-amd64
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> 
> Versions of packages libc6 depends on:
> ii  libgcc1                       1:4.2.2-3  GCC support library
> 
> libc6 recommends no packages.
> 
> -- debconf information:
>   glibc/restart-failed:
>   glibc/restart-services:
> 
> -- 
> Uwe Kleine-König, Software Engineer
> Digi International GmbH Branch Breisach, Küferstrasse 8, 79206 Breisach, Germany
> Tax: 315/5781/0242 / VAT: DE153662976 / Reg. Amtsgericht Dortmund HRB 13962
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-glibc-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian..org
> 

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

Attachment: pgpIFKf_1UVyG.pgp
Description: PGP signature


Reply to: