Rik Theys wrote:
I'm currently running the original etch version recompiled with -O0 and
dh_strip removed under valgrind to see if the stock etch version is OK
with the new libc6.
In attach the valgrind output with the stock etch version. It leaks a
lot less but still leaks in the compose_client.c code, which was patched
in one of the previous versions by freeing 'he' in client.d:266.
You were not sure if it's allowed to free the 'he' variable in
compose_client (client.c:266). Is there anyone who can confirm if this
is allowed?
It seems the correct fix would be to:
- fix nfs-utils in support/exports/client.c:
- the patch also applied to 1.0.12 in testing (line 329)
- the patch for compose_client which frees he on line 266
- fix libc6
If you agree, can you clone the bug to libc6 (etch version) and maybe
patch the nfs-utils version for stable-proposed-updates? I'm not
familiar with all the [EMAIL PROTECTED] commands.
Rik
--
Rik Theys
KU Leuven - Dept. ESAT
Kasteelpark Arenberg 10
B-3001 LEUVEN - HEVERLEE
Tel.: +32(0)16/32.11.07
----------------------------------------------------------------
<<Any errors in spelling, tact or fact are transmission errors>>
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
==2047== Omega-RC1, An instant memory leak detector.
==2047== Copyright (C) 2006, and GNU GPL'd, by Bryan Meredith.
==2047== Using LibVEX rev 1732, a library for dynamic binary translation.
==2047== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==2047== Using valgrind-3.2.3, a dynamic binary instrumentation framework.
==2047== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==2047== For more details, rerun with: -v
==2047==
==2047== My PID = 2047, parent PID = 13178. Prog and args are:
==2047== rpc.mountd
==2047== -F
==2047== -d
==2047== all
==2047==
==2047==
==2047==
==2047==
==2047== Omega Leak Summary
==2047== ==================
==2047== Loss Record 1: Leaked 16 (0x10) bytes in 1 block
==2047== at 0x410E8B2: tsearch (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x41214CE: __nss_lookup_function (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x41217FF: (within /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x412C7C4: innetgr (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804E71B: client_check (client.c:373)
==2047== by 0x804E2DC: client_compose (client.c:260)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== Block allocated
==2047== at 0x401CDA0: malloc (vg_replace_malloc.c:149)
==2047== by 0x410E78B: tsearch (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x41214CE: __nss_lookup_function (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x41217FF: (within /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4123665: (within /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x412C856: innetgr (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804E71B: client_check (client.c:373)
==2047== by 0x804E2DC: client_compose (client.c:260)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047==
==2047== Loss Record 2: Leaked 10320 (0x2850) bytes in 430 blocks
==2047== at 0x804E313: client_compose (client.c:266)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804A7E6: mount_umnt_1_svc (mountd.c:225)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047== by 0x804BAFE: main (mountd.c:722)
==2047== Blocks allocated
==2047== at 0x401CDA0: malloc (vg_replace_malloc.c:149)
==2047== by 0x804E4BA: add_name (client.c:309)
==2047== by 0x804E2F5: client_compose (client.c:262)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804A7E6: mount_umnt_1_svc (mountd.c:225)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047== by 0x804BAFE: main (mountd.c:722)
==2047==
==2047== Loss Record 3: Leaked 10728 (0x29E8) bytes in 447 blocks
==2047== at 0x804E313: client_compose (client.c:266)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047== by 0x804BAFE: main (mountd.c:722)
==2047== Blocks allocated
==2047== at 0x401CDA0: malloc (vg_replace_malloc.c:149)
==2047== by 0x804E4BA: add_name (client.c:309)
==2047== by 0x804E2F5: client_compose (client.c:262)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047==
==2047== Loss Record 4: Leaked 48 (0x30) bytes in 2 blocks
==2047== at 0x40AFE83: strcpy (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804F67A: hostent_dup (hostname.c:130)
==2047== by 0x804FAED: get_reliable_hostbyaddr (hostname.c:253)
==2047== by 0x804E28B: client_compose (client.c:253)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== Blocks allocated
==2047== at 0x401CDA0: malloc (vg_replace_malloc.c:149)
==2047== by 0x804E4BA: add_name (client.c:309)
==2047== by 0x804E2F5: client_compose (client.c:262)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047==
==2047== Loss Record 5: Leaked 72 (0x48) bytes in 3 blocks
==2047== at 0x40AFE83: strcpy (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804F67A: hostent_dup (hostname.c:130)
==2047== by 0x804FAED: get_reliable_hostbyaddr (hostname.c:253)
==2047== by 0x804E28B: client_compose (client.c:253)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804A7E6: mount_umnt_1_svc (mountd.c:225)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047== Blocks allocated
==2047== at 0x401CDA0: malloc (vg_replace_malloc.c:149)
==2047== by 0x804E4BA: add_name (client.c:309)
==2047== by 0x804E2F5: client_compose (client.c:262)
==2047== by 0x804BCBE: auth_authenticate_internal (auth.c:85)
==2047== by 0x804BFC9: auth_authenticate (auth.c:163)
==2047== by 0x804AC84: get_rootfh (mountd.c:384)
==2047== by 0x804ABC5: mount_mnt_3_svc (mountd.c:349)
==2047== by 0x805471A: rpc_dispatch (rpcdispatch.c:55)
==2047== by 0x804BBC2: mount_dispatch (mount_dispatch.c:83)
==2047== by 0x41363CF: svc_getreq_common (in
/lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x4135D2E: svc_getreqset (in /lib/tls/i686/cmov/libc-2.3.6.so)
==2047== by 0x804DC40: my_svc_run (svc_run.c:90)
==2047==