From: Andreas (andreas at conectiva dot com dot br)
Date: Fri Mar 19 2004 - 08:43:03 EST
On Fri, Mar 19, 2004 at 12:13:32AM -0800, Howard Chu wrote:
> I'm not familiar with MALLOC_CHECK setting. I would use something like
> ElectricFence, FunctionCheck, or Valgrind to trace this; it is most likely a
> redundant free().
Well, valgrind just confirms it's an invalid free (though the addresses changed
a lot when run with valgrind, I guess that's expected).
I'll try to check with other tools too.
(...)
SASL/DIGEST-MD5 authentication started
==4298==
==4298== Invalid free() / delete / delete[]
==4298== at 0x4003DA19: free (in /usr/lib/valgrind/valgrind.so)
==4298== by 0x4026D30E: ber_memfree (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/liblber/.libs/libl
ber.so.2.0.127)
==4298== by 0x4023124C: free_prompts (digestmd5.c:3320)
==4298== by 0x4023193D: c_continue_step (in /home/andreas/rpm/BUILD/cyrus-sasl-1.5.27/plugins/.libs/libdiges
tmd5.so.0.0.19)
==4298== Address 0x804C16D is not stack'd, malloc'd or free'd
SASL username: andreas
SASL realm: teste10.distro.conectiva
SASL SSF: 128
SASL installing layers
==4298==
==4298== Invalid free() / delete / delete[]
==4298== at 0x4003DA19: free (in /usr/lib/valgrind/valgrind.so)
==4298== by 0x4026D30E: ber_memfree (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/liblber/.libs/libl
ber.so.2.0.127)
==4298== by 0x804A698: lutil_sasl_freedefs (in /home/andreas/rpm/BUILD/openldap-2.1.27/clients/tools/.libs/l
dapwhoami)
==4298== by 0x804A3ED: tool_bind (common.c:679)
==4298== Address 0x432C5580 is 0 bytes inside a block of size 8 free'd
==4298== at 0x4003DA19: free (in /usr/lib/valgrind/valgrind.so)
==4298== by 0x4026D30E: ber_memfree (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/liblber/.libs/libl
ber.so.2.0.127)
==4298== by 0x4023124C: free_prompts (digestmd5.c:3320)
==4298== by 0x4023193D: c_continue_step (in /home/andreas/rpm/BUILD/cyrus-sasl-1.5.27/plugins/.libs/libdiges
tmd5.so.0.0.19)
==4298==
==4298== Invalid free() / delete / delete[]
==4298== at 0x4003DA19: free (in /usr/lib/valgrind/valgrind.so)
==4298== by 0x4026D30E: ber_memfree (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/liblber/.libs/libl
ber.so.2.0.127)
==4298== by 0x4025BBD8: ldap_charray_free (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/libldap/.lib
s/libldap.so.2.0.127)
==4298== by 0x804A66B: lutil_sasl_freedefs (in /home/andreas/rpm/BUILD/openldap-2.1.27/clients/tools/.libs/l
dapwhoami)
==4298== Address 0x432C8F44 is 0 bytes inside a block of size 7 free'd
==4298== at 0x4003DA19: free (in /usr/lib/valgrind/valgrind.so)
==4298== by 0x4026D30E: ber_memfree (in /home/andreas/rpm/BUILD/openldap-2.1.27/libraries/liblber/.libs/libl
ber.so.2.0.127)
==4298== by 0x4023124C: free_prompts (digestmd5.c:3320)
==4298== by 0x4023193D: c_continue_step (in /home/andreas/rpm/BUILD/cyrus-sasl-1.5.27/plugins/.libs/libdiges
tmd5.so.0.0.19)
ptr=0x432c8c38, ptr->result=0x432c5580 <== (my debug printf, ptr->result is what is being free()ed)
ptr=0x432c8c50, ptr->result=0x804c16d
ptr=0x432c8c68, ptr->result=0x432c8f44
dn:uid=andreas,cn=teste10.distro.conectiva,cn=digest-md5,cn=auth
|
|
|