/* Clear any features we don't understand. */
if ((open_flags & O_ACCMODE) != O_RDONLY) {
hdr.features_used &= TDB_FEATURE_MASK;
- if (tdb_write_convert(tdb, offsetof(struct tdb_header,
- features_used),
- &hdr.features_used,
- sizeof(hdr.features_used)) == -1)
+ ecode = tdb_write_convert(tdb, offsetof(struct tdb_header,
+ features_used),
+ &hdr.features_used,
+ sizeof(hdr.features_used));
+ if (ecode != TDB_SUCCESS)
goto fail;
}
tdb_unlock_open(tdb, openlock);
/* This make sure we have current map_size and mmap. */
- tdb->methods->oob(tdb, tdb->file->map_size + 1, true);
+ ecode = tdb->methods->oob(tdb, tdb->file->map_size + 1, true);
+ if (unlikely(ecode != TDB_SUCCESS))
+ goto fail;
/* Now it's fully formed, recover if necessary. */
berr = tdb_needs_recovery(tdb);