diff options
author | Andrew Bartlett <abartlet@samba.org> | 2017-08-15 14:25:59 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-09-07 06:56:26 +0200 |
commit | da1e23418a1d0e6b77dcf24bf6cbbc18b0fe020b (patch) | |
tree | 7929a914a86169ab029789617f913f97bb840d88 /lib/ldb | |
parent | 070f24bc9d2201a5bfef64988dd7b2afcaec6040 (diff) | |
download | samba-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.c | 3 |
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); } |