[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#6500) get_ldap_property returns stale data from time to time



Full_Name: Alin Vasile
Version: 2.4.19
OS: SuSE 11
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (194.237.142.17)


Hi,

  In a high load apache environment I am performing some ldap searches for some
requests using a custom developed application and the OpenLdap client libraries.
>From time to time I have the following segmentation fault:

Program terminated with signal 11, Segmentation fault.
#0  0x00000000004033b9 in get_ldap_property (ldap=0x764870, entry=0x841160,
attribute=0x87aa50 "smIMEI", context=0x76fc38)
    at ldap_query.c:30
30          if ( v != NULL && v[0] != NULL ) {
(gdb) backtrace
#0  0x00000000004033b9 in get_ldap_property (ldap=0x764870, entry=0x841160,
attribute=0x87aa50 "smIMEI", context=0x76fc38)
    at ldap_query.c:30
#1  0x00000000004040f7 in query (pool=0x76fc38, ep=0x610290,
ldap_request=0x76ff60) at ldap_query.c:353

And the function is :

char * get_ldap_property(LDAP* ldap, LDAPMessage *entry, char* attribute,
apr_pool_t* context) {

    char ** v = ldap_get_values(ldap, entry, attribute);

    if ( v != NULL && v[0] != NULL ) {
        char* ret = apr_pstrdup(context,  v[0] );
        ldap_value_free( v );
        return ret;
    }

    return NULL;

}

Note that most of the queries (99%) work fine.

Did anyone experienced something simmilar?

Thanks,
Alin