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

valgrind reports error on getpwnam



Hello!

When I run the program "bug" [1] under valgrind, I get a lot of error
messages [2]. Is it really a bug in glibc or is it a Valgrind bug?

Thanks,

Jakson

--------------------------------------------
[1] The program "bug"

#include <stdio.h>
#include <unistd.h>
#include <pwd.h>

int main(){
  char *s = NULL;
  struct passwd* uinf = NULL;
  s = getlogin();
  if(s == NULL)
    return;
  uinf = getpwnam(s);
  if(uinf == NULL)
    return;
  printf("%s\n", uinf->pw_dir);
}

--------------------------------------------

[2] The Valgrind log:

==6687== Memcheck, a memory error detector.
==6687== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==6687== Using LibVEX rev 1367, a library for dynamic binary translation.
==6687== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==6687== Using valgrind-3.0.1-Debian, a dynamic binary instrumentation framework.
==6687== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==6687== 
==6687== My PID = 6687, parent PID = 6665.  Prog and args are:
==6687==    ./bug
==6687== For more details, rerun with: -v
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4DEE: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4DFD: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4E0C: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4E1B: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4F7C: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4F87: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4F7C: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8E89C1: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EA51A: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8F4F87: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8E89C1: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EA51A: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687== 
==6687== Invalid read of size 4
==6687==    at 0x1B8F4F73: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8E89C1: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EA51A: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EDBBF: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EE144: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B87: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==  Address 0x1BA2D288 is 16 bytes inside a block of size 17 alloc'd
==6687==    at 0x1B8FF886: malloc (vg_replace_malloc.c:149)
==6687==    by 0x1B8EA722: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EDBBF: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EE144: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B87: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8ECB13: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7DF5: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Conditional jump or move depends on uninitialised value(s)
==6687==    at 0x1B8EC7D3: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7DF5: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7FC6: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9D9970: __nss_passwd_lookup (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9967BE: getpwnam_r (in /lib/libc-2.3.5.so)
==6687== 
==6687== Invalid read of size 4
==6687==    at 0x1B8F4F89: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8E89C1: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EA51A: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B905F39: (within /lib/libnss_compat-2.3.5.so)
==6687==  Address 0x1BA2D904 is 20 bytes inside a block of size 21 alloc'd
==6687==    at 0x1B8FF886: malloc (vg_replace_malloc.c:149)
==6687==    by 0x1B8EA722: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B30: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9D7E45: __nss_lookup_function (in /lib/libc-2.3.5.so)
==6687==    by 0x1B905F39: (within /lib/libnss_compat-2.3.5.so)
==6687==    by 0x1B9078D8: _nss_compat_getpwnam_r (in /lib/libnss_compat-2.3.5.so)
==6687== 
==6687== Invalid read of size 4
==6687==    at 0x1B8F4F89: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8E89C1: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EA51A: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EDBBF: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EE144: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B87: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==  Address 0x1BA2DC24 is 20 bytes inside a block of size 23 alloc'd
==6687==    at 0x1B8FF886: malloc (vg_replace_malloc.c:149)
==6687==    by 0x1B8EA722: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EDBBF: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B8EE144: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F7B87: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F8414: _dl_open (in /lib/libc-2.3.5.so)
==6687==    by 0x1B9F9924: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B8EF026: (within /lib/ld-2.3.5.so)
==6687==    by 0x1B9F98E1: (within /lib/libc-2.3.5.so)
==6687==    by 0x1B9F99C6: __libc_dlopen_mode (in /lib/libc-2.3.5.so)
==6687== 
==6687== Syscall param exit_group(exit_code) contains uninitialised byte(s)
==6687==    at 0x1B997807: _Exit (in /lib/libc-2.3.5.so)
==6687==    by 0x1B92441A: __libc_start_main (in /lib/libc-2.3.5.so)
==6687==    by 0x8048370: ??? (start.S:119)
==6687== 
==6687== ERROR SUMMARY: 20 errors from 14 contexts (suppressed: 13 from 1)
==6687== malloc/free: in use at exit: 156 bytes in 11 blocks.
==6687== malloc/free: 65 allocs, 54 frees, 6174 bytes allocated.
==6687== For counts of detected errors, rerun with: -v
==6687== searching for pointers to 11 not-freed blocks.
==6687== checked 69632 bytes.
==6687== 
==6687== LEAK SUMMARY:
==6687==    definitely lost: 156 bytes in 11 blocks.
==6687==      possibly lost: 0 bytes in 0 blocks.
==6687==    still reachable: 0 bytes in 0 blocks.
==6687==         suppressed: 0 bytes in 0 blocks.
==6687== Use --leak-check=full to see details of leaked memory.

Attachment: signature.asc
Description: Digital signature


Reply to: