diff options
| author | Volker Lendecke <vl@samba.org> | 2013-08-28 11:34:08 +0000 | 
|---|---|---|
| committer | Jeremy Allison <jra@samba.org> | 2013-08-28 23:37:08 +0200 | 
| commit | 1cae59ce112ccb51b45357a52b902f80fce1eef1 (patch) | |
| tree | 20882876c64ce88488da401a059ed2bb600b8a94 /source3/lib/dbwrap | |
| parent | 91186fcf9da6fa1180d9d773882a388e78c4c3b9 (diff) | |
| download | samba-1cae59ce112ccb51b45357a52b902f80fce1eef1.tar.gz samba-1cae59ce112ccb51b45357a52b902f80fce1eef1.tar.bz2 samba-1cae59ce112ccb51b45357a52b902f80fce1eef1.zip | |
dbwrap_ctdb: Treat empty records as non-existing
This is a patch implementing the workaround Christian mentioned in
https://bugzilla.samba.org/show_bug.cgi?id=10008#c5
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10008
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Christian Ambach <ambi@samba.org>
Diffstat (limited to 'source3/lib/dbwrap')
| -rw-r--r-- | source3/lib/dbwrap/dbwrap_ctdb.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/source3/lib/dbwrap/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c index f90e7b80f1..5a473f98af 100644 --- a/source3/lib/dbwrap/dbwrap_ctdb.c +++ b/source3/lib/dbwrap/dbwrap_ctdb.c @@ -103,6 +103,16 @@ static int db_ctdb_ltdb_parser(TDB_DATA key, TDB_DATA data,  	if (data.dsize < sizeof(struct ctdb_ltdb_header)) {  		return -1;  	} +	if (data.dsize == sizeof(struct ctdb_ltdb_header)) { +		/* +		 * Making this a separate case that needs fixing +		 * separately. This is an empty record. ctdbd does not +		 * distinguish between empty and deleted records. Samba right +		 * now can live without empty records, so lets treat zero-size +		 * (i.e. deleted) records as non-existing. +		 */ +		return -1; +	}  	state->parser(  		key, (struct ctdb_ltdb_header *)data.dptr,  		make_tdb_data(data.dptr + sizeof(struct ctdb_ltdb_header), | 
