[Pkg-openldap-devel] Bug#465933: libldap-2.4-2: svn crashes on every command after libldap upgrade

Daniel Jacobowitz dan at debian.org
Fri Feb 15 21:25:32 UTC 2008


On Fri, Feb 15, 2008 at 12:54:29PM -0800, Steve Langasek wrote:
> Mmm, strange.  The backtrace points to this section of code:
> 
>         if ( gopts->ldo_def_sasl_authcid ) {
>                 LDAP_FREE( gopts->ldo_def_sasl_authcid );
>                 gopts->ldo_def_sasl_authcid = NULL;
>         }
> 
> Could you try running svn under valgrind?  I can't see where this value
> would fail to be initialized correctly, or where it would get set to an
> invalid value.

Sure.  It doesn't say a thing up until the very end, after svn help
completes.  And then:

Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/
==767== Invalid free() / delete / delete[]
==767==    at 0x4C1FB2E: free (vg_replace_malloc.c:323)
==767==    by 0x9F01E0F: ldap_int_destroy_global_options (init.c:457)
==767==    by 0x9EE7501: (within /usr/lib/libldap_r-2.4.so.2.0.3)
==767==    by 0x9F0F0B0: (within /usr/lib/libldap_r-2.4.so.2.0.3)
==767==    by 0x5F41C3F: exit (exit.c:75)
==767==    by 0x5F2C1CA: (below main) (libc-start.c:254)
==767==  Address 0x2 is not stack'd, malloc'd or (recently) free'd

There appear to be two instances of "ldap_int_global_options".  One
is in the data section of /usr/lib/liblber.so.2 and the other in
/usr/lib/libldap_r-2.4.so.2 (I think, I'm not 100% sure about these
addresses).

They are of different sizes.  The one in liblber.so.2 does not include
the field here being freed.  And that's the one the dynamic linker has
picked.

Hmm.  liblber-2.4.so.2 and liblber.so.2 are both loaded.  Is that
kosher?  I'm guessing either it isn't kosher, or else symbol
versioning missed a symbol.

-- 
Daniel Jacobowitz
CodeSourcery





More information about the Pkg-openldap-devel mailing list