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== 

Reply via email to