From 953973c888a7a29efd0eabd5ac21d10dfd91c685 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 31 Jul 2001 00:03:24 +0000 Subject: Fix for rare tdb pattern store failure. Found & fixed by Rusty. Jeremy. (This used to be commit aaa56bb3a3c5f0e4191c9b3efe9b8d92c22cf6c7) --- source3/tdb/tdb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source3/tdb') diff --git a/source3/tdb/tdb.c b/source3/tdb/tdb.c index 940825e41d..c84af49b31 100644 --- a/source3/tdb/tdb.c +++ b/source3/tdb/tdb.c @@ -875,7 +875,10 @@ static int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf) if (!(rec_ptr = tdb_find_lock(tdb, key, F_WRLCK, &rec))) return -1; /* must be long enough key, data and tailer */ - if (rec.rec_len < key.dsize + dbuf.dsize + sizeof(tdb_off)) goto out; + if (rec.rec_len < key.dsize + dbuf.dsize + sizeof(tdb_off)) { + tdb->ecode = TDB_SUCCESS; /* Not really an error */ + goto out; + } if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len, dbuf.dptr, dbuf.dsize) == -1) -- cgit