Hi,

Purify is showing a memory leak in the latest LDAP SDK in ldap_result2error().

Has anybody else encountered it?

Regards,
Pradnyesh

===============================================================================

    nslberi_malloc [io.c:1519]
        void *
        nslberi_malloc( size_t size )
        {
            return( nslberi_memalloc_fns.lbermem_malloc == NULL ?
                malloc( size ) :
     =>         nslberi_memalloc_fns.lbermem_malloc( size ));
        }
        
        
    ber_get_stringa [decode.c:280]
        
            if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
                return( LBER_DEFAULT );
        
            if ( ((ndatalen = (size_t)datalen + 1) < (size_t) datalen) ||
     =>        ( (*buf = (char *)NSLBERI_MALLOC( (size_t)ndatalen )) == NULL ))
                return( LBER_DEFAULT );
        
            /*
             * datalen is being demoted to a long here --  possible conversion error
             */

    ber_scanf      [decode.c:463]
        #endif
            for ( rc = 0, p = (char *) fmt; *p && rc != LBER_DEFAULT; p++ ) {
                switch ( *p ) {
                case 'a':    /* octet string - allocate storage as needed */
                    ss = va_arg( ap, char ** );
     =>             rc = ber_get_stringa( ber, ss );
                    break;
        
                case 'b':    /* boolean */
                    i = va_arg( ap, int * );
                    rc = ber_get_boolean( ber, i );


    nsldapi_parse_result [error.c:440]
            if ( NSLDAPI_LDAP_VERSION( ld ) < LDAP_VERSION2 ) {
                berrc = ber_scanf( &ber, "{ia}", &along, &e );
                errcode = (int)along;    /* XXX lossy cast */
            } else {
                if (( berrc = ber_scanf( &ber, "{iaa", &along, &m, &e ))
     =>             != LBER_ERROR ) {
                    errcode = (int)along;    /* XXX lossy cast */
                    /* check for optional referrals */
                    if ( ber_peek_tag( &ber, &len ) == LDAP_TAG_REFERRAL ) {
                        if ( referralsp == NULL ) {
                            /* skip referrals */


    ldap_parse_result [error.c:341]
                LDAP_SET_LDERRNO( ld, err, NULL, NULL );
                return( err );
            }
        
            err = nsldapi_parse_result( ld, lm->lm_msgtype, lm->lm_ber, &errcode,
     =>         &m, &e, referralsp, serverctrlsp );
        
            if ( err == LDAP_SUCCESS ) {
                if ( errcodep != NULL ) {
                    *errcodep = errcode;
                }


    ldap_result2error [error.c:231]
        ldap_result2error( LDAP *ld, LDAPMessage *r, int freeit )
        {
            int    lderr_parse, lderr;
        
            lderr_parse = ldap_parse_result( ld, r, &lderr, NULL, NULL, NULL,
     =>         NULL, freeit );
        
            if ( lderr_parse != LDAP_SUCCESS ) {
                return( lderr_parse );
            }
_______________________________________________
mozilla-directory mailing list
[EMAIL PROTECTED]
http://mail.mozilla.org/listinfo/mozilla-directory

Reply via email to