From: Hallvard Furuseth Date: Sun, 17 Jul 2005 12:08:32 +0000 (+0000) Subject: bvlist *list was updated through the wrong type. X-Git-Tag: OPENLDAP_AC_BP~380 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ca615a4b3a9c00165eddad9e15d833128d5a91f5;p=openldap bvlist *list was updated through the wrong type. --- diff --git a/servers/slapd/back-ldif/ldif.c b/servers/slapd/back-ldif/ldif.c index a9550a5415..6c2890a838 100644 --- a/servers/slapd/back-ldif/ldif.c +++ b/servers/slapd/back-ldif/ldif.c @@ -388,7 +388,7 @@ static int r_enum_tree(enumCookie *ck, struct berval *path, while(1) { struct berval fname, itmp; struct dirent * dir; - bvlist *bvl, *prev; + bvlist *bvl, **prev; dir = readdir(dir_of_path); if(dir == NULL) break; /* end of the directory */ @@ -416,15 +416,14 @@ static int r_enum_tree(enumCookie *ck, struct berval *path, } } - for (ptr = list, prev = (bvlist *)&list; ptr; - prev = ptr, ptr = ptr->next) { + for (prev = &list; (ptr = *prev) != NULL; prev = &ptr->next) { int cmp = strcmp( bvl->bv.bv_val, ptr->bv.bv_val ); if ( !cmp && bvl->num.bv_val ) cmp = bvl->inum - ptr->inum; if ( cmp < 0 ) break; } - prev->next = bvl; + *prev = bvl; bvl->next = ptr; }