ldb:ldb_dn: use safe NUMERIC_CMP in ldb_dn_compare()
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Tue, 2 Apr 2024 23:51:04 +0000 (12:51 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 10 Apr 2024 22:56:33 +0000 (22:56 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15625

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/common/ldb_dn.c

index 95a903244c69cdcd4850f69e02bce0f4e4f67e2a..7325a000f0a97560fbab55c29ccdedb7aeea0efb 100644 (file)
@@ -1197,7 +1197,7 @@ int ldb_dn_compare(struct ldb_dn *dn0, struct ldb_dn *dn1)
 
                /* compare attr.cf_value. */
                if (dn0_vlen != dn1_vlen) {
-                       return dn0_vlen - dn1_vlen;
+                       return NUMERIC_CMP(dn0_vlen, dn1_vlen);
                }
                ret = strncmp(dn0_vdata, dn1_vdata, dn0_vlen);
                if (ret != 0) {