From: Andrew Tridgell Date: Sun, 17 Jul 2005 09:06:58 +0000 (+0000) Subject: r8517: fixed a crash bug in ldb_dn_compare_base() X-Git-Tag: samba-4.0.0alpha6~801^3~9836 X-Git-Url: http://git.samba.org/samba.git/?p=bbaumbach%2Fsamba-autobuild%2F.git;a=commitdiff_plain;h=6e4bcaffa051f69f4e6595cf7d659ec22a22ef21 r8517: fixed a crash bug in ldb_dn_compare_base() (This used to be commit 19d789e82526eff236aeed77ddc8d2606c5118b6) --- diff --git a/source4/lib/ldb/common/ldb_dn.c b/source4/lib/ldb/common/ldb_dn.c index 3cdc7ba85f8..edb5124d99d 100644 --- a/source4/lib/ldb/common/ldb_dn.c +++ b/source4/lib/ldb/common/ldb_dn.c @@ -412,13 +412,13 @@ int ldb_dn_compare_base(struct ldb_context *ldb, const struct ldb_dn *base, const struct ldb_dn *dn) { - int i, ret; + int ret; int n0, n1; /* if the number of components doesn't match they differ */ n0 = base->comp_num - 1; n1 = dn->comp_num - 1; - for (i = 0; i < base->comp_num; i++, n0--, n1--) { + while (n0 >= 0 && n1 >= 0) { const struct ldb_attrib_handler *h; /* compare names (attribute names are guaranteed to be ASCII only) */ @@ -435,6 +435,8 @@ int ldb_dn_compare_base(struct ldb_context *ldb, if (ret) { return ret; } + n1--; + n0--; } return 0;