summaryrefslogtreecommitdiff
path: root/lib/ldb
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2017-08-15 14:25:59 +1200
committerAndrew Bartlett <abartlet@samba.org>2017-09-07 06:56:26 +0200
commitda1e23418a1d0e6b77dcf24bf6cbbc18b0fe020b (patch)
tree7929a914a86169ab029789617f913f97bb840d88 /lib/ldb
parent070f24bc9d2201a5bfef64988dd7b2afcaec6040 (diff)
downloadsamba-da1e23418a1d0e6b77dcf24bf6cbbc18b0fe020b.tar.gz
ldb_tdb: Use memcmp() to compare TDB keys in re_index()
The keys may not always be a null terminated string, they could well be a binary GUID in a future revision, for efficiency.. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13016 Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'lib/ldb')
-rw-r--r--lib/ldb/ldb_tdb/ldb_index.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ldb/ldb_tdb/ldb_index.c b/lib/ldb/ldb_tdb/ldb_index.c
index 232bb4c16d9..fbc05bd6f1a 100644
--- a/lib/ldb/ldb_tdb/ldb_index.c
+++ b/lib/ldb/ldb_tdb/ldb_index.c
@@ -1620,7 +1620,8 @@ static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *
talloc_free(msg);
return 0;
}
- if (strcmp((char *)key2.dptr, (char *)key.dptr) != 0) {
+ if (key.dsize != key2.dsize ||
+ (memcmp(key.dptr, key2.dptr, key.dsize) != 0)) {
tdb_delete(tdb, key);
tdb_store(tdb, key2, data, 0);
}