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

Bug#543379: marked as done (libc6: Valgrind says getprotobyname(3) performs an invalid read)



Your message dated Mon, 24 Aug 2009 19:58:37 +0200
with message-id <20090824175837.GJ31825@hall.aurel32.net>
and subject line Re: Bug#543379: libc6: Valgrind says getprotobyname(3) performs an invalid read
has caused the Debian Bug report #543379,
regarding libc6: Valgrind says getprotobyname(3) performs an invalid read
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
543379: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543379
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libc6
Version: 2.7-18
Severity: normal

Valgrind says getprotobyname(3) performs an invalid read.

Compile and (valgrind-)execute the following C code:

/* main.c
 * compile with: gcc main.c
 * valgrind-execute with: valgrind --tool=memcheck --partial-loads-ok=no ./a.out
 */
#include <netdb.h>
int main(int argc, char ** argv) {
    getprotobyname("tcp");
}


You will get the followin output:
==4325== Memcheck, a memory error detector.
==4325== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==4325== Using LibVEX rev 1854, a library for dynamic binary translation.
==4325== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==4325== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
==4325== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==4325== For more details, rerun with: -v
==4325==
==4325== Invalid read of size 4
==4325==    at 0x4015847: (within /lib/ld-2.7.so)
==4325==    by 0x4158131: (within /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
==4325==    by 0x41582F4: __libc_dlopen_mode (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41306DF: __nss_lookup_function (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41307CF: (within /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41324D5: (within /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41389F0: getprotobyname_r (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41387E6: getprotobyname (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x80483C0: main (in /tmp/a.out)
==4325==  Address 0x4199f74 is 44 bytes inside a block of size 46 alloc'd
==4325==    at 0x4023D6E: malloc (vg_replace_malloc.c:207)
==4325==    by 0x400DB23: (within /lib/ld-2.7.so)
==4325==    by 0x4008555: (within /lib/ld-2.7.so)
==4325==    by 0x4011B46: (within /lib/ld-2.7.so)
==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
==4325==    by 0x401154D: (within /lib/ld-2.7.so)
==4325==    by 0x4158131: (within /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
==4325==    by 0x41582F4: __libc_dlopen_mode (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41306DF: __nss_lookup_function (in /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41307CF: (within /lib/i686/cmov/libc-2.7.so)
==4325==    by 0x41324D5: (within /lib/i686/cmov/libc-2.7.so)
==4325==
==4325== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 30 from 3)
==4325== malloc/free: in use at exit: 0 bytes in 0 blocks.
==4325== malloc/free: 43 allocs, 43 frees, 3,591 bytes allocated.
==4325== For counts of detected errors, rerun with: -v
==4325== All heap blocks were freed -- no leaks are possible.

If you valgrind-execute ignoring partial-loads, you wont get the error:
valgrind --tool=memcheck --partial-loads-ok=yes ./a.out
==4326== Memcheck, a memory error detector.
==4326== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==4326== Using LibVEX rev 1854, a library for dynamic binary translation.
==4326== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==4326== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
==4326== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==4326== For more details, rerun with: -v
==4326==
==4326==
==4326== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 29 from 2)
==4326== malloc/free: in use at exit: 0 bytes in 0 blocks.
==4326== malloc/free: 43 allocs, 43 frees, 3,591 bytes allocated.
==4326== For counts of detected errors, rerun with: -v
==4326== All heap blocks were freed -- no leaks are possible.


-- System Information:
Debian Release: 5.0.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.29.1
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 libc6 depends on:
ii  libgcc1                      1:4.3.2-1.1 GCC support library

libc6 recommends no packages.

Versions of packages libc6 suggests:
ii  glibc-doc                     2.7-18     GNU C Library: Documentation
ii  libc6-i686                    2.7-18     GNU C Library: Shared libraries [i
ii  locales                       2.7-18     GNU C Library: National Language (

-- debconf information:
  glibc/upgrade: true
  glibc/restart-failed:
* glibc/restart-services: ssh rsync openbsd-inetd exim4 cron atd



--- End Message ---
--- Begin Message ---
Version: 2.9-1

On Mon, Aug 24, 2009 at 05:47:23PM +0200, Alberto Cortes wrote:
> Package: libc6
> Version: 2.7-18
> Severity: normal
> 
> Valgrind says getprotobyname(3) performs an invalid read.
> 
> Compile and (valgrind-)execute the following C code:
> 
> /* main.c
>  * compile with: gcc main.c
>  * valgrind-execute with: valgrind --tool=memcheck --partial-loads-ok=no ./a.out
>  */
> #include <netdb.h>
> int main(int argc, char ** argv) {
>     getprotobyname("tcp");
> }
> 
> 
> You will get the followin output:
> ==4325== Memcheck, a memory error detector.
> ==4325== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
> ==4325== Using LibVEX rev 1854, a library for dynamic binary translation.
> ==4325== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
> ==4325== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
> ==4325== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
> ==4325== For more details, rerun with: -v
> ==4325==
> ==4325== Invalid read of size 4
> ==4325==    at 0x4015847: (within /lib/ld-2.7.so)
> ==4325==    by 0x4158131: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
> ==4325==    by 0x41582F4: __libc_dlopen_mode (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41306DF: __nss_lookup_function (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41307CF: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41324D5: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41389F0: getprotobyname_r (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41387E6: getprotobyname (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x80483C0: main (in /tmp/a.out)
> ==4325==  Address 0x4199f74 is 44 bytes inside a block of size 46 alloc'd
> ==4325==    at 0x4023D6E: malloc (vg_replace_malloc.c:207)
> ==4325==    by 0x400DB23: (within /lib/ld-2.7.so)
> ==4325==    by 0x4008555: (within /lib/ld-2.7.so)
> ==4325==    by 0x4011B46: (within /lib/ld-2.7.so)
> ==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
> ==4325==    by 0x401154D: (within /lib/ld-2.7.so)
> ==4325==    by 0x4158131: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x400DA15: (within /lib/ld-2.7.so)
> ==4325==    by 0x41582F4: __libc_dlopen_mode (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41306DF: __nss_lookup_function (in /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41307CF: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==    by 0x41324D5: (within /lib/i686/cmov/libc-2.7.so)
> ==4325==
> ==4325== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 30 from 3)
> ==4325== malloc/free: in use at exit: 0 bytes in 0 blocks.
> ==4325== malloc/free: 43 allocs, 43 frees, 3,591 bytes allocated.
> ==4325== For counts of detected errors, rerun with: -v
> ==4325== All heap blocks were freed -- no leaks are possible.
> 
> If you valgrind-execute ignoring partial-loads, you wont get the error:
> valgrind --tool=memcheck --partial-loads-ok=yes ./a.out
> ==4326== Memcheck, a memory error detector.
> ==4326== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
> ==4326== Using LibVEX rev 1854, a library for dynamic binary translation.
> ==4326== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
> ==4326== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
> ==4326== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
> ==4326== For more details, rerun with: -v
> ==4326==
> ==4326==
> ==4326== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 29 from 2)
> ==4326== malloc/free: in use at exit: 0 bytes in 0 blocks.
> ==4326== malloc/free: 43 allocs, 43 frees, 3,591 bytes allocated.
> ==4326== For counts of detected errors, rerun with: -v
> ==4326== All heap blocks were freed -- no leaks are possible.
> 
> 

Marking the bug as fixed in version 2.9.

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


--- End Message ---

Reply to: