From: Gary Lockyer Date: Thu, 6 Jun 2019 02:57:45 +0000 (+1200) Subject: lib tdb: memcmp ubsan warning X-Git-Tag: ldb-2.0.5~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a77fda0cd4b9ec89024c7ac8a3f77797e00f4263;p=thirdparty%2Fsamba.git lib tdb: memcmp ubsan warning Fix the ubsan warning lib/tdb/common/tdb.c:184:9: runtime error: null pointer passed as argument 2, which is declared to never be null" memcmp call now guarded by a length check. memcmp returns zero when called with a zero length parameter. Signed-off-by: Gary Lockyer Reviewed-by: Noel Power Autobuild-User(master): Noel Power Autobuild-Date(master): Mon Jul 1 14:50:54 UTC 2019 on sn-devel-184 --- diff --git a/lib/tdb/common/tdb.c b/lib/tdb/common/tdb.c index 9c80a36e00a..c56b37be5ca 100644 --- a/lib/tdb/common/tdb.c +++ b/lib/tdb/common/tdb.c @@ -180,12 +180,14 @@ static int tdb_update_hash_cmp(TDB_DATA key, TDB_DATA data, void *private_data) for (i=0; inum_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;