ldb: use strncmp instead of strcmp when comparing the val part
authorMatthieu Patou <mat@matws.net>
Thu, 13 Dec 2012 10:18:34 +0000 (02:18 -0800)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 8 Feb 2013 04:06:37 +0000 (15:06 +1100)
val part of a DN's component is DATA_BLOB and nothing insure that it
will be finished by a '\0'

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/common/ldb_dn.c

index b910489a8e8f1bcf4b9bef9cf57530381f8003d8..14596f6c3711f5a643f1b485e40cfec0076fedab 100644 (file)
@@ -1097,7 +1097,7 @@ int ldb_dn_compare_base(struct ldb_dn *base, struct ldb_dn *dn)
                if (b_vlen != dn_vlen) {
                        return b_vlen - dn_vlen;
                }
-               ret = strcmp(b_vdata, dn_vdata);
+               ret = strncmp(b_vdata, dn_vdata, b_vlen);
                if (ret != 0) return ret;
 
                n_base--;
@@ -1176,7 +1176,7 @@ int ldb_dn_compare(struct ldb_dn *dn0, struct ldb_dn *dn1)
                if (dn0_vlen != dn1_vlen) {
                        return dn0_vlen - dn1_vlen;
                }
-               ret = strcmp(dn0_vdata, dn1_vdata);
+               ret = strncmp(dn0_vdata, dn1_vdata, dn0_vlen);
                if (ret != 0) {
                        return ret;
                }