From ross at biostat.ucsf.edu  Wed Jun 13 18:48:01 2007
From: ross at biostat.ucsf.edu (Ross Boylan)
Date: Wed, 13 Jun 2007 09:48:01 -0700
Subject: [Rd] Reported invalid memory references
Message-ID: <1181753281.19590.24.camel@corn.betterworld.us>

While testing for leaks in my own code I noticed some reported memory
problems from valgrind, invoked with 
$ R --vanilla -d "valgrind --leak-check=full"

This is on Debian GNU/Linux (testing aka lenny) with a 2.6 kernel, R
package version 2.4.1-2.  I was running in an emacs shell.

The immediate source of all the problems before I get to the prompt is
the system dynamic loader ld-2.5.so, invoked from R.  Then, when I exit,
there are a bunch of reported leaks, some of which appear to be more
directly from R (though some involve, e.g., readline).

Are these reported errors actually problems?  If so, do they indicate
problems in R or some other component (e.g., ld.so).  Put more
practically, should I file one or more bugs, and if so, against what?

Thanks.
Ross Boylan

==30551== Invalid read of size 4
==30551==    at 0x4016503: (within /lib/ld-2.5.so)
==30551==    by 0x4006009: (within /lib/ld-2.5.so)
==30551==    by 0x40084F5: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF82F: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43F1595: __nss_passwd_lookup
(in /lib/i686/cmov/libc-2.5.so)
==30551==  Address 0x4EFB560 is 32 bytes inside a block of size 34
alloc'd
==30551==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30551==    by 0x4008AF3: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF82F: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43F1595: __nss_passwd_lookup
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x439D87D: getpwuid_r (in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Invalid read of size 4
==30551==    at 0x4016530: (within /lib/ld-2.5.so)
==30551==    by 0x4006009: (within /lib/ld-2.5.so)
==30551==    by 0x40084F5: (within /lib/ld-2.5.so)
==30551==    by 0x400C616: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x400CBDA: (within /lib/ld-2.5.so)
==30551==    by 0x4012234: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==  Address 0x4EFB8A8 is 24 bytes inside a block of size 27
alloc'd
==30551==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30551==    by 0x4008AF3: (within /lib/ld-2.5.so)
==30551==    by 0x400C616: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x400CBDA: (within /lib/ld-2.5.so)
==30551==    by 0x4012234: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x400B3CC: (within /lib/ld-2.5.so)
==30551==    by 0x401230B: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF82F: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43F1595: __nss_passwd_lookup
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x439D87D: getpwuid_r (in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x439D187: getpwuid (in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x400B0CA: (within /lib/ld-2.5.so)
==30551==    by 0x401230B: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF82F: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43F1595: __nss_passwd_lookup
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x439D87D: getpwuid_r (in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x439D187: getpwuid (in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Invalid read of size 4
==30551==    at 0x4016547: (within /lib/ld-2.5.so)
==30551==    by 0x4006009: (within /lib/ld-2.5.so)
==30551==    by 0x40084F5: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x42FDF7B: (within /lib/i686/cmov/libnss_compat-2.5.so)
==30551==    by 0x42FF0AC: _nss_compat_getpwuid_r
(in /lib/i686/cmov/libnss_compat-2.5.so)
==30551==  Address 0x4EFBF54 is 28 bytes inside a block of size 31
alloc'd
==30551==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30551==    by 0x4008AF3: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x42FDF7B: (within /lib/i686/cmov/libnss_compat-2.5.so)
==30551==    by 0x42FF0AC: _nss_compat_getpwuid_r
(in /lib/i686/cmov/libnss_compat-2.5.so)
==30551==    by 0x439D7A2: getpwuid_r (in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Invalid read of size 4
==30551==    at 0x4016503: (within /lib/ld-2.5.so)
==30551==    by 0x4006009: (within /lib/ld-2.5.so)
==30551==    by 0x40084F5: (within /lib/ld-2.5.so)
==30551==    by 0x400C616: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x400CBDA: (within /lib/ld-2.5.so)
==30551==    by 0x4012234: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==  Address 0x4EFC290 is 32 bytes inside a block of size 33
alloc'd
==30551==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30551==    by 0x4008AF3: (within /lib/ld-2.5.so)
==30551==    by 0x400C616: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x400CBDA: (within /lib/ld-2.5.so)
==30551==    by 0x4012234: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x44142E1: (within /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4414494: __libc_dlopen_mode
(in /lib/i686/cmov/libc-2.5.so)
==30551==    by 0x43EF73E: __nss_lookup_function
(in /lib/i686/cmov/libc-2.5.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x40163E4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x40163EF: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x40163FA: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x4016405: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30551== 
==30551== Invalid read of size 4
==30551==    at 0x4016530: (within /lib/ld-2.5.so)
==30551==    by 0x4006009: (within /lib/ld-2.5.so)
==30551==    by 0x40084F5: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==  Address 0x5300E00 is 40 bytes inside a block of size 43
alloc'd
==30551==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30551==    by 0x40077B4: (within /lib/ld-2.5.so)
==30551==    by 0x4008439: (within /lib/ld-2.5.so)
==30551==    by 0x40121D4: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x400AF8B: (within /lib/ld-2.5.so)
==30551==    by 0x401230B: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x400B356: (within /lib/ld-2.5.so)
==30551==    by 0x401230B: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30551== 
==30551== Conditional jump or move depends on uninitialised value(s)
==30551==    at 0x400B1D8: (within /lib/ld-2.5.so)
==30551==    by 0x401230B: (within /lib/ld-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x4011C5D: (within /lib/ld-2.5.so)
==30551==    by 0x48D1C2C: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x400E255: (within /lib/ld-2.5.so)
==30551==    by 0x48D22AB: (within /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x48D1B63: dlopen (in /lib/i686/cmov/libdl-2.5.so)
==30551==    by 0x420BCE5: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404403B: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x404463C: (within /usr/lib/R/lib/libR.so)
==30551==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)

R version 2.4.1 (2006-12-18)



If I then type q(), I get these leaks reported:
==30906== 
==30906== ERROR SUMMARY: 43 errors from 22 contexts (suppressed: 58 from
1)
==30906== malloc/free: in use at exit: 13,184,322 bytes in 6,493 blocks.
==30906== malloc/free: 40,226 allocs, 33,733 frees, 58,642,360 bytes
allocated.
==30906== For counts of detected errors, rerun with: -v
==30906== searching for pointers to 6,493 not-freed blocks.
==30906== checked 13,097,152 bytes.
==30906== 
==30906== 
==30906== 4 bytes in 1 blocks are definitely lost in loss record 1 of 53
==30906==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30906==    by 0x4880C21: xmalloc (in /lib/libreadline.so.5.2)
==30906==    by 0x4869109: readline_internal_teardown
(in /lib/libreadline.so.5.2)
==30906==    by 0x487C867: rl_callback_read_char
(in /lib/libreadline.so.5.2)
==30906==    by 0x420D34A: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x420E8F4: R_ReadConsole (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40FAB8A: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40FACFD: run_Rmainloop (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40FAD4B: Rf_mainloop (in /usr/lib/R/lib/libR.so)
==30906==    by 0x80486C5: main (in /usr/lib/R/bin/exec/R)
==30906== 
==30906== 
==30906== 35 bytes in 1 blocks are definitely lost in loss record 11 of
53
==30906==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30906==    by 0x41B8F55: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x40F9CF6: setup_Rmainloop (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40FAD46: Rf_mainloop (in /usr/lib/R/lib/libR.so)
==30906==    by 0x80486C5: main (in /usr/lib/R/bin/exec/R)
==30906== 
==30906== 
==30906== 56 bytes in 14 blocks are definitely lost in loss record 13 of
53
==30906==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30906==    by 0x402353A: realloc (vg_replace_malloc.c:306)
==30906==    by 0x417A5F5: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x417A6E6: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x417A860: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x417C071: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x4069995: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40D76B6: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40D6BF6: (within /usr/lib/R/lib/libR.so)
==30906== 
==30906== 
==30906== 312 (72 direct, 240 indirect) bytes in 2 blocks are definitely
lost in loss record 19 of 53
==30906==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30906==    by 0x43EF967: (within /lib/i686/cmov/libc-2.5.so)
==30906==    by 0x43F01B5: __nss_database_lookup
(in /lib/i686/cmov/libc-2.5.so)
==30906==    by 0x42FDF5B: ???
==30906==    by 0x42FF0AC: ???
==30906==    by 0x439D7A2: getpwuid_r (in /lib/i686/cmov/libc-2.5.so)
==30906==    by 0x439D187: getpwuid (in /lib/i686/cmov/libc-2.5.so)
==30906==    by 0x4132CF0: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x410BCCD: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30906==    by 0x40D82B5: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x40D5550: Rf_eval (in /usr/lib/R/lib/libR.so)
==30906== 
==30906== 
==30906== 579 bytes in 23 blocks are definitely lost in loss record 26
of 53
==30906==    at 0x40234B0: malloc (vg_replace_malloc.c:149)
==30906==    by 0x4045267: (within /usr/lib/R/lib/libR.so)
==30906==    by 0x404569F: process_system_Renviron
(in /usr/lib/R/lib/libR.so)
==30906==    by 0x420EE01: Rf_initialize_R (in /usr/lib/R/lib/libR.so)
==30906==    by 0x80486C0: main (in /usr/lib/R/bin/exec/R)
==30906== 
==30906== LEAK SUMMARY:
==30906==    definitely lost: 746 bytes in 41 blocks.
==30906==    indirectly lost: 240 bytes in 20 blocks.
==30906==      possibly lost: 0 bytes in 0 blocks.
==30906==    still reachable: 13,183,336 bytes in 6,432 blocks.
==30906==         suppressed: 0 bytes in 0 blocks.
==30906== Reachable blocks (those to which a pointer was found) are not
shown.
==30906== To see them, rerun with: --leak-check=full
--show-reachable=yes



[Rd] Reported invalid memory references
Ross Boylan