ldap/servers/slapd/back-ldbm/index.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 6d4566ee11e3789c9f9ebacea8bde420f36cb6fd
Author: Noriko Hosoi <nhosoi(a)jiji.usersys.redhat.com>
Date: Mon Feb 28 16:54:11 2011 -0800
Bug 679978 - modifying attr value crashes the server, which is supposed to
be indexed as substring type, but has octetstring syntax
https://bugzilla.redhat.com/show_bug.cgi?id=679978
Description: When indexing, index_addordel_values_ext_sv calls a helper
function valuearray_minus_valuearray in index.c. There is a corner case
that could pass NULL array arguments to valuearray_minus_valuearray.
In valuearray_minus_valuearray, the array's elements were accessed w/o
checking the array was NULL or not. This patch is adding the check.
diff --git a/ldap/servers/slapd/back-ldbm/index.c b/ldap/servers/slapd/back-ldbm/index.c
index 73275fc..03ea5e4 100644
--- a/ldap/servers/slapd/back-ldbm/index.c
+++ b/ldap/servers/slapd/back-ldbm/index.c
@@ -2152,10 +2152,10 @@ valuearray_minus_valuearray(
}
/* determine length of a */
- for (acnt = 0; a[acnt] != NULL; acnt++);
+ for (acnt = 0; a && a[acnt] != NULL; acnt++);
/* determine length of b */
- for (bcnt = 0; b[bcnt] != NULL; bcnt++);
+ for (bcnt = 0; b && b[bcnt] != NULL; bcnt++);
/* allocate return array as big as a */
c = (Slapi_Value**)slapi_ch_calloc(acnt+1, sizeof(Slapi_Value*));