lib tdb: memcmp ubsan warning
[samba.git] / lib / tdb / common / tdb.c
index 9c80a36e00a42eff4439949806c1099e3e781a24..c56b37be5caeeeec5e83e379e4ff3fbc49fbdea8 100644 (file)
@@ -180,12 +180,14 @@ static int tdb_update_hash_cmp(TDB_DATA key, TDB_DATA data, void *private_data)
 
        for (i=0; i<state->num_dbufs; i++) {
                TDB_DATA dbuf = state->dbufs[i];
-               int ret;
-               ret = memcmp(dptr, dbuf.dptr, dbuf.dsize);
-               if (ret != 0) {
-                       return -1;
+               if( dbuf.dsize > 0) {
+                       int ret;
+                       ret = memcmp(dptr, dbuf.dptr, dbuf.dsize);
+                       if (ret != 0) {
+                               return -1;
+                       }
+                       dptr += dbuf.dsize;
                }
-               dptr += dbuf.dsize;
        }
 
        return 0;