off = first_ftable(tdb);
for (i = 0; i < ftable; i++) {
if (TDB_OFF_IS_ERR(off)) {
- tdb->ecode = off;
break;
}
off = next_ftable(tdb, off);
ecode = add_free_record(tdb, off, end - off);
if (ecode != TDB_SUCCESS) {
- tdb->ecode = ecode;
return ecode;
}
return true;
goto unlock_err;
}
+ /* For futureproofing, we put a 0 in any unused space. */
+ if (rec_extra_padding(&rec)) {
+ ecode = tdb->methods->twrite(tdb, best_off + sizeof(rec)
+ + keylen + datalen, "", 1);
+ if (ecode != TDB_SUCCESS) {
+ goto unlock_err;
+ }
+ }
+
/* Bucket of leftover will be <= current bucket, so nested
* locking is allowed. */
if (leftover) {