]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/search.c
Move LDAPServer, LDAPConn, LDAPRequest, and LDAPCache
[openldap] / libraries / libldap / search.c
index 2a45f1ce6d6fec74ff93db8a3cb369be285de35a..daa4017a67ea5eeda3a4cf54670451bcc8825837 100644 (file)
@@ -112,6 +112,12 @@ ldap_build_search_req( LDAP *ld, char *base, int scope, char *filter,
        }
 
        if ( base == NULL ) {
+               /* no base provided, use session default base */
+               base = ld->ld_options.ldo_defbase;
+       }
+
+       if ( base == NULL ) {
+               /* no session default base, use top */
            base = "";
        }
 
@@ -135,7 +141,7 @@ ldap_build_search_req( LDAP *ld, char *base, int scope, char *filter,
                return( NULLBER );
        }
 
-       filter = strdup( filter );
+       filter = ldap_strdup( filter );
        err = put_filter( ber, filter );
        free( filter );
 
@@ -317,7 +323,7 @@ put_filter( BerElement *ber, char *str )
                                        return( -1 );
 
                                *next = '\0';
-                               tmp = strdup( str );
+                               tmp = ldap_strdup( str );
                                if ( gotescape ) {
                                        escape = 0;
                                        for ( s = d = tmp; *s; s++ ) {
@@ -359,7 +365,7 @@ put_filter( BerElement *ber, char *str )
                        Debug( LDAP_DEBUG_TRACE, "put_filter: default\n", 0, 0,
                            0 );
                        next = strchr( str, '\0' );
-                       tmp = strdup( str );
+                       tmp = ldap_strdup( str );
                        if ( strchr( tmp, '\\' ) != NULL ) {
                                escape = 0;
                                for ( s = d = tmp; *s; s++ ) {