tag 273051 - unreproducible thanks I confirm that, though it seems to be an x86 only bug, as it works on amd64 OK. On Thu, Feb 09, 2006 at 01:26:46PM +0200, Torok Edwin wrote: > Package: libc6 > Version: 2.3.5-12.1 > Followup-For: Bug #273051 > > > This bug is still reproducible. There still is a memory leak in > nss_parse_service_list when using getpwuid, getgrouplist. I have found > that this leak appears when I use getpwnam_r too. (I attached the > getpwnam.c test program). > > However if I change 'compat' to 'files' in /etc/nsswitch.conf the leaks > go away. > > Default nsswitch.conf (leak when used): > # /etc/nsswitch.conf > # > # Example configuration of GNU Name Service Switch functionality. > # If you have the `glibc-doc' and `info' packages installed, try: > # `info libc "Name Service Switch"' for information about this file. > > passwd: compat > group: compat > shadow: compat > > #passwd: files > #group: files > #shadow: files > > hosts: files dns mdns > networks: files > > protocols: db files > services: db files > ethers: db files > rpc: db files > > netgroup: nis > > Modified /etc/nsswitch.conf: > # /etc/nsswitch.conf > # > # Example configuration of GNU Name Service Switch functionality. > # If you have the `glibc-doc' and `info' packages installed, try: > # `info libc "Name Service Switch"' for information about this file. > > #passwd: compat > #group: compat > #shadow: compat > > passwd: files > group: files > shadow: files > > hosts: files dns mdns > networks: files > > protocols: db files > services: db files > ethers: db files > rpc: db files > > netgroup: nis > > > I compiled the programs like this: > $ gcc -g getpwuid.c -o getpwuid > $ gcc -g getgrouplist.c -o getgrouplist > $ gcc -g getpwnam.c -o getpwnam > > I run valgrind like this, using default /etc/nsswitch.conf: > $ valgrind --tool=memcheck -v --leak-resolution=high --leak-check=yes --num-callers=15 --log-file=pwuid.log ./getpwuid > $ valgrind --tool=memcheck -v --leak-resolution=high --leak-check=yes --num-callers=15 --log-file=pwnam.log ./getpwnam > $ valgrind --tool=memcheck -v --leak-resolution=high --leak-check=yes --num-callers=15 --log-file=grouplist.log ./getgrouplist > Memory leaks in this case. > > I changed 'compat' to 'files' in /etc/nsswitch.conf, and run: > $ valgrind --tool=memcheck -v --leak-resolution=high --leak-check=yes --num-callers=15 --log-file=grouplist.log_ok ./getgrouplist > No leak in this case. > > I attached the full output logs to this bug report, but here are the > relevant parts: > > ==11536== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely > lost in loss record 11 of 11 > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11536== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11536== by 0x4E5F5DF: ??? > ==11536== by 0x4E601E3: ??? > ==11536== by 0x4BB1675: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:207) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > > ==11542== 340 (52 direct, 288 indirect) bytes in 1 blocks are definitely > lost in loss record 13 of 13 > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11542== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11542== by 0x4E63213: ??? > ==11542== by 0x4BAF35B: internal_getgrouplist (initgroups.c:104) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > > ==11539== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely > lost in loss record 11 of 11 > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11539== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11539== by 0x4E5F5DF: ??? > ==11539== by 0x4E60C9B: ??? > ==11539== by 0x4BB1485: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:207) > ==11539== by 0x400639: main (getpwnam.c:16) > > > ==11978== malloc/free: in use at exit: 0 bytes in 0 blocks. > ==11978== malloc/free: 46 allocs, 46 frees, 4,094 bytes allocated. > > Version of gcc: > Using built-in specs. > Target: x86_64-linux-gnu > Configured with: ../src/configure -v > --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr > --enable-shared --with-system-zlib --libexecdir=/usr/lib > --without-included-gettext --enable-threads=posix --enable-nls > --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu > --enable-libstdcxx-debug --enable-java-awt=gtk --enable-gtk-cairo > --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre > --enable-mpfr --disable-werror --enable-checking=release > x86_64-linux-gnu > Thread model: posix > gcc version 4.0.3 20060128 (prerelease) (Debian 4.0.2-8) > > Version of valgrind: > valgrind-3.1.0 > > Please tell me what further information you need to fix this bug. > > -- System Information: > Debian Release: testing/unstable > APT prefers unstable > APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable') > Architecture: amd64 (x86_64) > Shell: /bin/sh linked to /bin/bash > Kernel: Linux 2.6.15-1-amd64-k8 > Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) > > -- no debconf information > #include <sys/types.h> > #include <pwd.h> > #include <stdlib.h> > #include <stdio.h> > int main() > { > const char* user="edwin"; > struct passwd pwbuf; > struct passwd* result=NULL; > const size_t length=4096; > void* buffer = malloc( sizeof(struct passwd) + length); > if (buffer == NULL) > { > exit(1);/*OOM*/ > } > int status = getpwnam_r(user,buffer,sizeof(struct passwd)+(char*)buffer,length,&result); > if(!status && result==buffer) > { > printf("success\n"); > > } > else printf("failed\n"); > free(buffer); > return 0; > } > ==11542== Memcheck, a memory error detector. > ==11542== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. > ==11542== Using LibVEX rev 1471, a library for dynamic binary translation. > ==11542== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. > ==11542== Using valgrind-3.1.0, a dynamic binary instrumentation framework. > ==11542== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. > ==11542== > ==11542== My PID = 11542, parent PID = 9306. Prog and args are: > ==11542== ./getgrouplist > ==11542== > --11542-- > --11542-- Command line > --11542-- ./getgrouplist > --11542-- Startup, with flags: > --11542-- --tool=memcheck > --11542-- -v > --11542-- --leak-resolution=high > --11542-- --leak-check=yes > --11542-- --num-callers=15 > --11542-- --log-file=grouplist.log > --11542-- Contents of /proc/version: > --11542-- Linux version 2.6.15-1-amd64-k8 (Debian 2.6.15-3) (horms@verge.net.au) (gcc version 4.0.3 20060115 (prerelease) (Debian 4.0.2-7)) #2 Thu Jan 19 07:43:40 UTC 2006 > --11542-- Arch and subarch: AMD64, NONE > --11542-- Valgrind library directory: /usr/local/lib/valgrind > --11542-- Reading syms from /home/edwin/br/getgrouplist (0x400000) > --11542-- Reading syms from /lib/ld-2.3.5.so (0x4000000) > --11542-- Reading debug info from /lib/ld-2.3.5.so... > --11542-- ... CRC mismatch (computed 3E8F25D6 wanted A270983D) > --11542-- Reading debug info from /usr/lib/debug/lib/ld-2.3.5.so... > --11542-- object doesn't have a symbol table > --11542-- Reading syms from /usr/local/lib/valgrind/amd64-linux/memcheck (0x70000000) > --11542-- object doesn't have a dynamic symbol table > --11542-- Reading suppressions file: /usr/local/lib/valgrind/default.supp > --11542-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_core.so (0x4918000) > --11542-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_memcheck.so (0x4A19000) > --11542-- Reading syms from /usr/lib/debug/libc-2.3.5.so (0x4B1F000) > --11542-- REDIR: 0x4B92520 (rindex) redirected to 0x4A1C430 (rindex) > --11542-- REDIR: 0x4B8C8B0 (malloc) redirected to 0x4A1A99D (malloc) > --11542-- REDIR: 0x4B920D0 (strlen) redirected to 0x4A1C5E0 (strlen) > --11542-- REDIR: 0x4B92C70 (memchr) redirected to 0x4A1C760 (memchr) > --11542-- REDIR: 0x4B93C10 (memcpy) redirected to 0x4A1C9E0 (memcpy) > --11542-- REDIR: 0x4B94590 (strchrnul) redirected to 0x4A1C990 (strchrnul) > --11542-- REDIR: 0x4B8AC20 (free) redirected to 0x4A1B535 (free) > --11542-- REDIR: 0x4B91B30 (strcmp) redirected to 0x4A1C6C0 (strcmp) > --11542-- REDIR: 0x4B93920 (stpcpy) redirected to 0x4A1CCE0 (stpcpy) > --11542-- REDIR: 0x4B91980 (index) redirected to 0x4A1C520 (index) > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006C31: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > --11542-- REDIR: 0x4B8C580 (calloc) redirected to 0x4A1BD00 (calloc) > ==11542== > ==11542== Invalid read of size 8 > ==11542== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== Address 0x4D5DE48 is 32 bytes inside a block of size 34 alloc'd > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > --11542-- Reading syms from /usr/lib/debug/libnss_compat-2.3.5.so (0x4E5D000) > ==11542== > ==11542== Invalid read of size 8 > ==11542== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== Address 0x4D5E398 is 24 bytes inside a block of size 27 alloc'd > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11542== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > --11542-- Reading syms from /usr/lib/debug/libnsl-2.3.5.so (0x4F66000) > --11542-- REDIR: 0x4B91B70 (strcpy) redirected to 0x4A1CC20 (strcpy) > --11542-- Reading syms from /usr/lib/debug/libnss_nis-2.3.5.so (0x507D000) > --11542-- Reading syms from /usr/lib/debug/libnss_files-2.3.5.so (0x5188000) > --11542-- REDIR: 0x4B944C0 (rawmemchr) redirected to 0x4A1C9C0 (rawmemchr) > --11542-- REDIR: 0x4B93500 (memset) redirected to 0x4A1C900 (memset) > --11542-- discard syms at 0x4E5D000-0x4F66000 in /usr/lib/debug/libnss_compat-2.3.5.so due to munmap() > --11542-- REDIR: 0x4B93360 (memmove) redirected to 0x4A1C930 (memmove) > --11542-- discard syms at 0x507D000-0x5188000 in /usr/lib/debug/libnss_nis-2.3.5.so due to munmap() > --11542-- discard syms at 0x4F66000-0x507D000 in /usr/lib/debug/libnsl-2.3.5.so due to munmap() > --11542-- discard syms at 0x5188000-0x5294000 in /usr/lib/debug/libnss_files-2.3.5.so due to munmap() > ==11542== > ==11542== ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11542== > ==11542== 1 errors in context 1 of 7: > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== > ==11542== 1 errors in context 2 of 7: > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== 1 errors in context 3 of 7: > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== 1 errors in context 4 of 7: > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== 1 errors in context 5 of 7: > ==11542== Conditional jump or move depends on uninitialised value(s) > ==11542== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11542== > ==11542== 2 errors in context 6 of 7: > ==11542== Invalid read of size 8 > ==11542== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== Address 0x4D5DE48 is 32 bytes inside a block of size 34 alloc'd > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== > ==11542== 2 errors in context 7 of 7: > ==11542== Invalid read of size 8 > ==11542== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11542== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11542== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11542== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== Address 0x4D5E398 is 24 bytes inside a block of size 27 alloc'd > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11542== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11542== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11542== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11542== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11542== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11542== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11542== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > --11542-- > --11542-- supp: 2 Ubuntu-stripped-ld.so > ==11542== > ==11542== IN SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11542== > ==11542== malloc/free: in use at exit: 340 bytes in 13 blocks. > ==11542== malloc/free: 68 allocs, 55 frees, 8,471 bytes allocated. > ==11542== > ==11542== searching for pointers to 13 not-freed blocks. > ==11542== checked 64,056 bytes. > ==11542== > ==11542== > ==11542== 340 (52 direct, 288 indirect) bytes in 1 blocks are definitely lost in loss record 13 of 13 > ==11542== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11542== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11542== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11542== by 0x4E63213: ??? > ==11542== by 0x4BAF35B: internal_getgrouplist (initgroups.c:104) > ==11542== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11542== by 0x40052D: main (getgrouplist.c:9) > ==11542== > ==11542== LEAK SUMMARY: > ==11542== definitely lost: 52 bytes in 1 blocks. > ==11542== indirectly lost: 288 bytes in 12 blocks. > ==11542== possibly lost: 0 bytes in 0 blocks. > ==11542== still reachable: 0 bytes in 0 blocks. > ==11542== suppressed: 0 bytes in 0 blocks. > ==11542== Reachable blocks (those to which a pointer was found) are not shown. > ==11542== To see them, rerun with: --show-reachable=yes > --11542-- memcheck: sanity checks: 1 cheap, 1 expensive > --11542-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use > --11542-- memcheck: auxmaps: 0 searches, 0 comparisons > --11542-- memcheck: secondaries: 17 issued (1088k, 1M) > --11542-- memcheck: secondaries: 66 accessible and distinguished (4224k, 4M) > --11542-- tt/tc: 4,767 tt lookups requiring 4,833 probes > --11542-- tt/tc: 4,767 fast-cache updates, 6 flushes > --11542-- translate: new 2,274 (50,664 -> 927,467; ratio 183:10) [0 scs] > --11542-- translate: dumped 0 (0 -> ??) > --11542-- translate: discarded 117 (2,137 -> ??) > --11542-- scheduler: 61,005 jumps (bb entries). > --11542-- scheduler: 1/2,724 major/minor sched events. > --11542-- sanity: 2 cheap, 1 expensive checks. > --11542-- exectx: 30,011 lists, 68 contexts (avg 0 per list) > --11542-- exectx: 134 searches, 265 full compares (1,977 per 1000) > --11542-- exectx: 0 cmp2, 25 cmp4, 66 cmpAll > ==11536== Memcheck, a memory error detector. > ==11536== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. > ==11536== Using LibVEX rev 1471, a library for dynamic binary translation. > ==11536== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. > ==11536== Using valgrind-3.1.0, a dynamic binary instrumentation framework. > ==11536== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. > ==11536== > ==11536== My PID = 11536, parent PID = 9306. Prog and args are: > ==11536== ./getpwuid > ==11536== > --11536-- > --11536-- Command line > --11536-- ./getpwuid > --11536-- Startup, with flags: > --11536-- --tool=memcheck > --11536-- -v > --11536-- --leak-resolution=high > --11536-- --leak-check=yes > --11536-- --num-callers=15 > --11536-- --log-file=pwuid.log > --11536-- Contents of /proc/version: > --11536-- Linux version 2.6.15-1-amd64-k8 (Debian 2.6.15-3) (horms@verge.net.au) (gcc version 4.0.3 20060115 (prerelease) (Debian 4.0.2-7)) #2 Thu Jan 19 07:43:40 UTC 2006 > --11536-- Arch and subarch: AMD64, NONE > --11536-- Valgrind library directory: /usr/local/lib/valgrind > --11536-- Reading syms from /home/edwin/br/getpwuid (0x400000) > --11536-- Reading syms from /lib/ld-2.3.5.so (0x4000000) > --11536-- Reading debug info from /lib/ld-2.3.5.so... > --11536-- ... CRC mismatch (computed 3E8F25D6 wanted A270983D) > --11536-- Reading debug info from /usr/lib/debug/lib/ld-2.3.5.so... > --11536-- object doesn't have a symbol table > --11536-- Reading syms from /usr/local/lib/valgrind/amd64-linux/memcheck (0x70000000) > --11536-- object doesn't have a dynamic symbol table > --11536-- Reading suppressions file: /usr/local/lib/valgrind/default.supp > --11536-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_core.so (0x4918000) > --11536-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_memcheck.so (0x4A19000) > --11536-- Reading syms from /usr/lib/debug/libc-2.3.5.so (0x4B1F000) > --11536-- REDIR: 0x4B92520 (rindex) redirected to 0x4A1C430 (rindex) > --11536-- REDIR: 0x4B8C8B0 (malloc) redirected to 0x4A1A99D (malloc) > --11536-- REDIR: 0x4B920D0 (strlen) redirected to 0x4A1C5E0 (strlen) > --11536-- REDIR: 0x4B92C70 (memchr) redirected to 0x4A1C760 (memchr) > --11536-- REDIR: 0x4B93C10 (memcpy) redirected to 0x4A1C9E0 (memcpy) > --11536-- REDIR: 0x4B94590 (strchrnul) redirected to 0x4A1C990 (strchrnul) > --11536-- REDIR: 0x4B8AC20 (free) redirected to 0x4A1B535 (free) > --11536-- REDIR: 0x4B91B30 (strcmp) redirected to 0x4A1C6C0 (strcmp) > --11536-- REDIR: 0x4B93920 (stpcpy) redirected to 0x4A1CCE0 (stpcpy) > --11536-- REDIR: 0x4B91980 (index) redirected to 0x4A1C520 (index) > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006C31: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > --11536-- REDIR: 0x4B8C580 (calloc) redirected to 0x4A1BD00 (calloc) > ==11536== > ==11536== Invalid read of size 8 > ==11536== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== Address 0x4D5E218 is 32 bytes inside a block of size 34 alloc'd > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > --11536-- Reading syms from /usr/lib/debug/libnss_compat-2.3.5.so (0x4E5D000) > ==11536== > ==11536== Invalid read of size 8 > ==11536== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== Address 0x4D5E768 is 24 bytes inside a block of size 27 alloc'd > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11536== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > --11536-- Reading syms from /usr/lib/debug/libnsl-2.3.5.so (0x4F66000) > --11536-- REDIR: 0x4B91B70 (strcpy) redirected to 0x4A1CC20 (strcpy) > --11536-- Reading syms from /usr/lib/debug/libnss_nis-2.3.5.so (0x507D000) > --11536-- Reading syms from /usr/lib/debug/libnss_files-2.3.5.so (0x5188000) > --11536-- REDIR: 0x4B93500 (memset) redirected to 0x4A1C900 (memset) > --11536-- discard syms at 0x4E5D000-0x4F66000 in /usr/lib/debug/libnss_compat-2.3.5.so due to munmap() > --11536-- REDIR: 0x4B93360 (memmove) redirected to 0x4A1C930 (memmove) > --11536-- discard syms at 0x507D000-0x5188000 in /usr/lib/debug/libnss_nis-2.3.5.so due to munmap() > --11536-- discard syms at 0x4F66000-0x507D000 in /usr/lib/debug/libnsl-2.3.5.so due to munmap() > --11536-- discard syms at 0x5188000-0x5294000 in /usr/lib/debug/libnss_files-2.3.5.so due to munmap() > ==11536== > ==11536== ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11536== > ==11536== 1 errors in context 1 of 7: > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== > ==11536== 1 errors in context 2 of 7: > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== 1 errors in context 3 of 7: > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== 1 errors in context 4 of 7: > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== 1 errors in context 5 of 7: > ==11536== Conditional jump or move depends on uninitialised value(s) > ==11536== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11536== > ==11536== 2 errors in context 6 of 7: > ==11536== Invalid read of size 8 > ==11536== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== Address 0x4D5E218 is 32 bytes inside a block of size 34 alloc'd > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== > ==11536== 2 errors in context 7 of 7: > ==11536== Invalid read of size 8 > ==11536== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11536== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11536== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11536== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== Address 0x4D5E768 is 24 bytes inside a block of size 27 alloc'd > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11536== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11536== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11536== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11536== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11536== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11536== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11536== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11536== by 0x4BB176B: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > --11536-- > --11536-- supp: 2 Ubuntu-stripped-ld.so > ==11536== > ==11536== IN SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11536== > ==11536== malloc/free: in use at exit: 292 bytes in 11 blocks. > ==11536== malloc/free: 66 allocs, 55 frees, 9,403 bytes allocated. > ==11536== > ==11536== searching for pointers to 11 not-freed blocks. > ==11536== checked 64,064 bytes. > ==11536== > ==11536== > ==11536== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 11 > ==11536== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11536== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11536== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11536== by 0x4E5F5DF: ??? > ==11536== by 0x4E601E3: ??? > ==11536== by 0x4BB1675: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:207) > ==11536== by 0x4BB0FDE: getpwuid (getXXbyYY.c:116) > ==11536== by 0x400509: main (getpwuid.c:9) > ==11536== > ==11536== LEAK SUMMARY: > ==11536== definitely lost: 52 bytes in 1 blocks. > ==11536== indirectly lost: 240 bytes in 10 blocks. > ==11536== possibly lost: 0 bytes in 0 blocks. > ==11536== still reachable: 0 bytes in 0 blocks. > ==11536== suppressed: 0 bytes in 0 blocks. > ==11536== Reachable blocks (those to which a pointer was found) are not shown. > ==11536== To see them, rerun with: --show-reachable=yes > --11536-- memcheck: sanity checks: 1 cheap, 1 expensive > --11536-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use > --11536-- memcheck: auxmaps: 0 searches, 0 comparisons > --11536-- memcheck: secondaries: 18 issued (1152k, 1M) > --11536-- memcheck: secondaries: 66 accessible and distinguished (4224k, 4M) > --11536-- tt/tc: 4,768 tt lookups requiring 4,849 probes > --11536-- tt/tc: 4,768 fast-cache updates, 6 flushes > --11536-- translate: new 2,273 (50,759 -> 930,326; ratio 183:10) [0 scs] > --11536-- translate: dumped 0 (0 -> ??) > --11536-- translate: discarded 131 (2,314 -> ??) > --11536-- scheduler: 57,386 jumps (bb entries). > --11536-- scheduler: 1/2,723 major/minor sched events. > --11536-- sanity: 2 cheap, 1 expensive checks. > --11536-- exectx: 30,011 lists, 66 contexts (avg 0 per list) > --11536-- exectx: 132 searches, 241 full compares (1,825 per 1000) > --11536-- exectx: 0 cmp2, 25 cmp4, 45 cmpAll > ==11539== Memcheck, a memory error detector. > ==11539== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. > ==11539== Using LibVEX rev 1471, a library for dynamic binary translation. > ==11539== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. > ==11539== Using valgrind-3.1.0, a dynamic binary instrumentation framework. > ==11539== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. > ==11539== > ==11539== My PID = 11539, parent PID = 9306. Prog and args are: > ==11539== ./getpwnam > ==11539== > --11539-- > --11539-- Command line > --11539-- ./getpwnam > --11539-- Startup, with flags: > --11539-- --tool=memcheck > --11539-- -v > --11539-- --leak-resolution=high > --11539-- --leak-check=yes > --11539-- --num-callers=15 > --11539-- --log-file=pwnam.log > --11539-- Contents of /proc/version: > --11539-- Linux version 2.6.15-1-amd64-k8 (Debian 2.6.15-3) (horms@verge.net.au) (gcc version 4.0.3 20060115 (prerelease) (Debian 4.0.2-7)) #2 Thu Jan 19 07:43:40 UTC 2006 > --11539-- Arch and subarch: AMD64, NONE > --11539-- Valgrind library directory: /usr/local/lib/valgrind > --11539-- Reading syms from /home/edwin/br/getpwnam (0x400000) > --11539-- Reading syms from /lib/ld-2.3.5.so (0x4000000) > --11539-- Reading debug info from /lib/ld-2.3.5.so... > --11539-- ... CRC mismatch (computed 3E8F25D6 wanted A270983D) > --11539-- Reading debug info from /usr/lib/debug/lib/ld-2.3.5.so... > --11539-- object doesn't have a symbol table > --11539-- Reading syms from /usr/local/lib/valgrind/amd64-linux/memcheck (0x70000000) > --11539-- object doesn't have a dynamic symbol table > --11539-- Reading suppressions file: /usr/local/lib/valgrind/default.supp > --11539-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_core.so (0x4918000) > --11539-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_memcheck.so (0x4A19000) > --11539-- Reading syms from /usr/lib/debug/libc-2.3.5.so (0x4B1F000) > --11539-- REDIR: 0x4B92520 (rindex) redirected to 0x4A1C430 (rindex) > --11539-- REDIR: 0x4B8C8B0 (malloc) redirected to 0x4A1A99D (malloc) > --11539-- REDIR: 0x4B920D0 (strlen) redirected to 0x4A1C5E0 (strlen) > --11539-- REDIR: 0x4B92C70 (memchr) redirected to 0x4A1C760 (memchr) > --11539-- REDIR: 0x4B93C10 (memcpy) redirected to 0x4A1C9E0 (memcpy) > --11539-- REDIR: 0x4B94590 (strchrnul) redirected to 0x4A1C990 (strchrnul) > --11539-- REDIR: 0x4B8AC20 (free) redirected to 0x4A1B535 (free) > --11539-- REDIR: 0x4B91B30 (strcmp) redirected to 0x4A1C6C0 (strcmp) > --11539-- REDIR: 0x4B93920 (stpcpy) redirected to 0x4A1CCE0 (stpcpy) > --11539-- REDIR: 0x4B91980 (index) redirected to 0x4A1C520 (index) > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006C31: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > --11539-- REDIR: 0x4B8C580 (calloc) redirected to 0x4A1BD00 (calloc) > ==11539== > ==11539== Invalid read of size 8 > ==11539== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== Address 0x4D5EE48 is 32 bytes inside a block of size 34 alloc'd > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > --11539-- Reading syms from /usr/lib/debug/libnss_compat-2.3.5.so (0x4E5D000) > ==11539== > ==11539== Invalid read of size 8 > ==11539== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== Address 0x4D5F398 is 24 bytes inside a block of size 27 alloc'd > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11539== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > --11539-- Reading syms from /usr/lib/debug/libnsl-2.3.5.so (0x4F66000) > --11539-- REDIR: 0x4B91B70 (strcpy) redirected to 0x4A1CC20 (strcpy) > --11539-- Reading syms from /usr/lib/debug/libnss_nis-2.3.5.so (0x507D000) > --11539-- Reading syms from /usr/lib/debug/libnss_files-2.3.5.so (0x5188000) > --11539-- REDIR: 0x4B93500 (memset) redirected to 0x4A1C900 (memset) > --11539-- discard syms at 0x4E5D000-0x4F66000 in /usr/lib/debug/libnss_compat-2.3.5.so due to munmap() > --11539-- REDIR: 0x4B93360 (memmove) redirected to 0x4A1C930 (memmove) > --11539-- discard syms at 0x507D000-0x5188000 in /usr/lib/debug/libnss_nis-2.3.5.so due to munmap() > --11539-- discard syms at 0x4F66000-0x507D000 in /usr/lib/debug/libnsl-2.3.5.so due to munmap() > --11539-- discard syms at 0x5188000-0x5294000 in /usr/lib/debug/libnss_files-2.3.5.so due to munmap() > ==11539== > ==11539== ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11539== > ==11539== 1 errors in context 1 of 7: > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== > ==11539== 1 errors in context 2 of 7: > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== 1 errors in context 3 of 7: > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== 1 errors in context 4 of 7: > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== 1 errors in context 5 of 7: > ==11539== Conditional jump or move depends on uninitialised value(s) > ==11539== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11539== > ==11539== 2 errors in context 6 of 7: > ==11539== Invalid read of size 8 > ==11539== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== Address 0x4D5EE48 is 32 bytes inside a block of size 34 alloc'd > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== > ==11539== 2 errors in context 7 of 7: > ==11539== Invalid read of size 8 > ==11539== at 0x4010D3E: (within /lib/ld-2.3.5.so) > ==11539== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11539== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11539== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== Address 0x4D5F398 is 24 bytes inside a block of size 27 alloc'd > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11539== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11539== by 0x4009F6C: (within /lib/ld-2.3.5.so) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x400A9A3: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1D5AD: dl_open_worker (dl-open.c:294) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11539== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11539== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11539== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11539== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11539== by 0x4BFB163: __nss_lookup (nsswitch.c:150) > ==11539== by 0x4BB157B: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:171) > --11539-- > --11539-- supp: 2 Ubuntu-stripped-ld.so > ==11539== > ==11539== IN SUMMARY: 9 errors from 7 contexts (suppressed: 2 from 1) > ==11539== > ==11539== malloc/free: in use at exit: 292 bytes in 11 blocks. > ==11539== malloc/free: 66 allocs, 55 frees, 12,523 bytes allocated. > ==11539== > ==11539== searching for pointers to 11 not-freed blocks. > ==11539== checked 64,040 bytes. > ==11539== > ==11539== > ==11539== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 11 > ==11539== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11539== by 0x4BFB2CF: nss_parse_service_list (nsswitch.c:530) > ==11539== by 0x4BFB9C7: __nss_database_lookup (nsswitch.c:134) > ==11539== by 0x4E5F5DF: ??? > ==11539== by 0x4E60C9B: ??? > ==11539== by 0x4BB1485: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:207) > ==11539== by 0x400639: main (getpwnam.c:16) > ==11539== > ==11539== LEAK SUMMARY: > ==11539== definitely lost: 52 bytes in 1 blocks. > ==11539== indirectly lost: 240 bytes in 10 blocks. > ==11539== possibly lost: 0 bytes in 0 blocks. > ==11539== still reachable: 0 bytes in 0 blocks. > ==11539== suppressed: 0 bytes in 0 blocks. > ==11539== Reachable blocks (those to which a pointer was found) are not shown. > ==11539== To see them, rerun with: --show-reachable=yes > --11539-- memcheck: sanity checks: 1 cheap, 1 expensive > --11539-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use > --11539-- memcheck: auxmaps: 0 searches, 0 comparisons > --11539-- memcheck: secondaries: 18 issued (1152k, 1M) > --11539-- memcheck: secondaries: 66 accessible and distinguished (4224k, 4M) > --11539-- tt/tc: 4,908 tt lookups requiring 4,988 probes > --11539-- tt/tc: 4,908 fast-cache updates, 6 flushes > --11539-- translate: new 2,344 (51,973 -> 956,389; ratio 184:10) [0 scs] > --11539-- translate: dumped 0 (0 -> ??) > --11539-- translate: discarded 133 (2,234 -> ??) > --11539-- scheduler: 58,684 jumps (bb entries). > --11539-- scheduler: 1/2,796 major/minor sched events. > --11539-- sanity: 2 cheap, 1 expensive checks. > --11539-- exectx: 30,011 lists, 66 contexts (avg 0 per list) > --11539-- exectx: 132 searches, 213 full compares (1,613 per 1000) > --11539-- exectx: 0 cmp2, 25 cmp4, 45 cmpAll > ==11978== Memcheck, a memory error detector. > ==11978== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. > ==11978== Using LibVEX rev 1471, a library for dynamic binary translation. > ==11978== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. > ==11978== Using valgrind-3.1.0, a dynamic binary instrumentation framework. > ==11978== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. > ==11978== > ==11978== My PID = 11978, parent PID = 9306. Prog and args are: > ==11978== ./getgrouplist > ==11978== > --11978-- > --11978-- Command line > --11978-- ./getgrouplist > --11978-- Startup, with flags: > --11978-- --tool=memcheck > --11978-- -v > --11978-- --leak-resolution=high > --11978-- --leak-check=yes > --11978-- --num-callers=15 > --11978-- --log-file=grouplist.log_ok > --11978-- Contents of /proc/version: > --11978-- Linux version 2.6.15-1-amd64-k8 (Debian 2.6.15-3) (horms@verge.net.au) (gcc version 4.0.3 20060115 (prerelease) (Debian 4.0.2-7)) #2 Thu Jan 19 07:43:40 UTC 2006 > --11978-- Arch and subarch: AMD64, NONE > --11978-- Valgrind library directory: /usr/local/lib/valgrind > --11978-- Reading syms from /home/edwin/br/getgrouplist (0x400000) > --11978-- Reading syms from /lib/ld-2.3.5.so (0x4000000) > --11978-- Reading debug info from /lib/ld-2.3.5.so... > --11978-- ... CRC mismatch (computed 3E8F25D6 wanted A270983D) > --11978-- Reading debug info from /usr/lib/debug/lib/ld-2.3.5.so... > --11978-- object doesn't have a symbol table > --11978-- Reading syms from /usr/local/lib/valgrind/amd64-linux/memcheck (0x70000000) > --11978-- object doesn't have a dynamic symbol table > --11978-- Reading suppressions file: /usr/local/lib/valgrind/default.supp > --11978-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_core.so (0x4918000) > --11978-- Reading syms from /usr/local/lib/valgrind/amd64-linux/vgpreload_memcheck.so (0x4A19000) > --11978-- Reading syms from /usr/lib/debug/libc-2.3.5.so (0x4B1F000) > --11978-- REDIR: 0x4B92520 (rindex) redirected to 0x4A1C430 (rindex) > --11978-- REDIR: 0x4B8C8B0 (malloc) redirected to 0x4A1A99D (malloc) > --11978-- REDIR: 0x4B920D0 (strlen) redirected to 0x4A1C5E0 (strlen) > --11978-- REDIR: 0x4B92C70 (memchr) redirected to 0x4A1C760 (memchr) > --11978-- REDIR: 0x4B93C10 (memcpy) redirected to 0x4A1C9E0 (memcpy) > --11978-- REDIR: 0x4B94590 (strchrnul) redirected to 0x4A1C990 (strchrnul) > --11978-- REDIR: 0x4B8AC20 (free) redirected to 0x4A1B535 (free) > --11978-- REDIR: 0x4B91B30 (strcmp) redirected to 0x4A1C6C0 (strcmp) > --11978-- REDIR: 0x4B93920 (stpcpy) redirected to 0x4A1CCE0 (stpcpy) > --11978-- REDIR: 0x4B91980 (index) redirected to 0x4A1C520 (index) > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BBE: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006C31: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008BCC: (within /lib/ld-2.3.5.so) > ==11978== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > --11978-- REDIR: 0x4B8C580 (calloc) redirected to 0x4A1BD00 (calloc) > ==11978== > ==11978== Invalid read of size 8 > ==11978== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11978== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== Address 0x4D5DE48 is 32 bytes inside a block of size 33 alloc'd > ==11978== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11978== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > --11978-- Reading syms from /usr/lib/debug/libnss_files-2.3.5.so (0x4E5D000) > --11978-- REDIR: 0x4B91B70 (strcpy) redirected to 0x4A1CC20 (strcpy) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D4B: (within /lib/ld-2.3.5.so) > ==11978== by 0x40086C4: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4011404: (within /lib/ld-2.3.5.so) > ==11978== by 0x40086F4: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== Invalid read of size 8 > ==11978== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B752: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B8E3: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008730: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== Address 0x4D5DE48 is 32 bytes inside a block of size 33 alloc'd > ==11978== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11978== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D17: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B75E: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B8E3: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008730: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > --11978-- REDIR: 0x4B944C0 (rawmemchr) redirected to 0x4A1C9C0 (rawmemchr) > --11978-- REDIR: 0x4B93500 (memset) redirected to 0x4A1C900 (memset) > --11978-- discard syms at 0x4E5D000-0x4F69000 in /usr/lib/debug/libnss_files-2.3.5.so due to munmap() > ==11978== > ==11978== ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 2 from 1) > ==11978== > ==11978== 1 errors in context 1 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D17: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B75E: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B8E3: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008730: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== 1 errors in context 2 of 10: > ==11978== Invalid read of size 8 > ==11978== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B752: (within /lib/ld-2.3.5.so) > ==11978== by 0x400B8E3: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008730: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F294: do_dlsym (dl-libc.c:88) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F3E2: __libc_dlsym (dl-libc.c:42) > ==11978== by 0x4BFAEA3: __nss_lookup_function (nsswitch.c:381) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== Address 0x4D5DE48 is 32 bytes inside a block of size 33 alloc'd > ==11978== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11978== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== 1 errors in context 3 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4011404: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 4 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D4B: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 5 of 10: > ==11978== Invalid read of size 8 > ==11978== at 0x4010CF0: (within /lib/ld-2.3.5.so) > ==11978== by 0x4008D8B: (within /lib/ld-2.3.5.so) > ==11978== by 0x40041B1: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006CE6: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== Address 0x4D5DE48 is 32 bytes inside a block of size 33 alloc'd > ==11978== at 0x4A1AA16: malloc (vg_replace_malloc.c:149) > ==11978== by 0x40056FC: (within /lib/ld-2.3.5.so) > ==11978== by 0x4006D9C: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1D550: dl_open_worker (dl-open.c:259) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1DE0A: _dl_open (dl-open.c:577) > ==11978== by 0x4C1F247: do_dlopen (dl-libc.c:80) > ==11978== by 0x400B970: (within /lib/ld-2.3.5.so) > ==11978== by 0x4C1F361: __libc_dlopen_mode (dl-libc.c:42) > ==11978== by 0x4BFAFCA: __nss_lookup_function (nsswitch.c:344) > ==11978== by 0x4BAF31D: internal_getgrouplist (initgroups.c:93) > ==11978== by 0x4BAF551: getgrouplist (initgroups.c:158) > ==11978== by 0x40052D: main (getgrouplist.c:9) > ==11978== > ==11978== 1 errors in context 6 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 7 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010D31: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 8 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BD4: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 9 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BC9: (within /lib/ld-2.3.5.so) > ==11978== > ==11978== 1 errors in context 10 of 10: > ==11978== Conditional jump or move depends on uninitialised value(s) > ==11978== at 0x4010BBE: (within /lib/ld-2.3.5.so) > --11978-- > --11978-- supp: 2 Ubuntu-stripped-ld.so > ==11978== > ==11978== IN SUMMARY: 10 errors from 10 contexts (suppressed: 2 from 1) > ==11978== > ==11978== malloc/free: in use at exit: 0 bytes in 0 blocks. > ==11978== malloc/free: 46 allocs, 46 frees, 4,094 bytes allocated. > ==11978== > ==11978== No malloc'd blocks -- no leaks are possible. > --11978-- memcheck: sanity checks: 0 cheap, 1 expensive > --11978-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use > --11978-- memcheck: auxmaps: 0 searches, 0 comparisons > --11978-- memcheck: secondaries: 14 issued (896k, 0M) > --11978-- memcheck: secondaries: 66 accessible and distinguished (4224k, 4M) > --11978-- tt/tc: 4,475 tt lookups requiring 4,552 probes > --11978-- tt/tc: 4,475 fast-cache updates, 3 flushes > --11978-- translate: new 2,224 (49,528 -> 905,364; ratio 182:10) [0 scs] > --11978-- translate: dumped 0 (0 -> ??) > --11978-- translate: discarded 60 (1,034 -> ??) > --11978-- scheduler: 44,799 jumps (bb entries). > --11978-- scheduler: 0/2,422 major/minor sched events. > --11978-- sanity: 1 cheap, 1 expensive checks. > --11978-- exectx: 30,011 lists, 56 contexts (avg 0 per list) > --11978-- exectx: 104 searches, 190 full compares (1,826 per 1000) > --11978-- exectx: 0 cmp2, 46 cmp4, 0 cmpAll -- ·O· Pierre Habouzit ··O madcoder@debian.org OOO http://www.madism.org
Attachment:
pgpper7NcXaUt.pgp
Description: PGP signature