From 95954ac7b4bb0ffb6dffa101ef6d575ff228dd1a Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 10 Aug 2021 14:52:15 -0400 Subject: [PATCH] libext2fs: fix coverity nits in tdb.c Address unchecked returned value and a string not null terminated warnings. Addresses-Coverity-Bug: 709473 Addresses-Coverity-Bug: 709474 Addresses-Coverity-Bug: 1464578 Signed-off-by: Theodore Ts'o --- lib/ext2fs/tdb.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/ext2fs/tdb.c b/lib/ext2fs/tdb.c index dc5c0ff6..b07b2917 100644 --- a/lib/ext2fs/tdb.c +++ b/lib/ext2fs/tdb.c @@ -3089,9 +3089,10 @@ void tdb_increment_seqnum_nonblock(struct tdb_context *tdb) /* we ignore errors from this, as we have no sane way of dealing with them. */ - tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum); + if (tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum) == -1) + return; seqnum++; - tdb_ofs_write(tdb, TDB_SEQNUM_OFS, &seqnum); + (void) tdb_ofs_write(tdb, TDB_SEQNUM_OFS, &seqnum); } /* @@ -3692,7 +3693,8 @@ int tdb_get_seqnum(struct tdb_context *tdb) { tdb_off_t seqnum=0; - tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum); + if (tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum) == -1) + return 0; return seqnum; } @@ -3914,7 +3916,8 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, } if (read(tdb->fd, &tdb->header, sizeof(tdb->header)) != sizeof(tdb->header) - || strcmp(tdb->header.magic_food, TDB_MAGIC_FOOD) != 0 + || memcmp(tdb->header.magic_food, TDB_MAGIC_FOOD, + sizeof(TDB_MAGIC_FOOD)) != 0 || (tdb->header.version != TDB_VERSION && !(rev = (tdb->header.version==TDB_BYTEREV(TDB_VERSION))))) { /* its not a valid database - possibly initialise it */ -- 2.25.1