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)
committerStefan Metzmacher <metze@samba.org>
Tue, 29 Jan 2013 21:03:13 +0000 (22:03 +0100)
val part of a DN's component is DATA_BLOB and nothing insure that it
will be finished by a '\0'

Reviewed-by: Stefan Metzmacher <metze@samba.org>
lib/ldb/common/ldb_dn.c

index d63a27cbd4153ca98da08a857fcae5d477e8135f..7e1be2fbb5eb9ed3287549547428761e11eebb17 100644 (file)
@@ -1224,7 +1224,7 @@ static int ldb_dn_compare_base_internal(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--;
@@ -1333,7 +1333,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;
                }