]> git.sur5r.net Git - openldap/commitdiff
More for error propagation
authorHoward Chu <hyc@openldap.org>
Mon, 9 May 2005 01:20:03 +0000 (01:20 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 9 May 2005 01:20:03 +0000 (01:20 +0000)
servers/slapd/back-ldif/ldif.c

index 57ad89e43b5691eb86de668d00ad120ad348aecb..5ac20b94480e72c9b5f1bf048c559bf8e3a2c842 100644 (file)
@@ -458,12 +458,14 @@ static int r_enum_tree(enumCookie *ck, struct berval *path,
 
                        list = ptr->next;
 
-                       if ( ptr->num.bv_val )
-                               AC_MEMCPY( ptr->bv.bv_val + ptr->off, ptr->num.bv_val,
-                                       ptr->num.bv_len );
-                       fullpath( path, &ptr->bv, &fpath );
-                       r_enum_tree(ck, &fpath, &e->e_name, &e->e_nname );
-                       free(fpath.bv_val);
+                       if ( rc == LDAP_SUCCESS ) {
+                               if ( ptr->num.bv_val )
+                                       AC_MEMCPY( ptr->bv.bv_val + ptr->off, ptr->num.bv_val,
+                                               ptr->num.bv_len );
+                               fullpath( path, &ptr->bv, &fpath );
+                               rc = r_enum_tree(ck, &fpath, &e->e_name, &e->e_nname );
+                               free(fpath.bv_val);
+                       }
                        if ( ptr->num.bv_val )
                                free( ptr->num.bv_val );
                        free(ptr->bv.bv_val);