1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-12 21:58:10 +03:00

fixed a memory leak in the recovery daemon

(This used to be ctdb commit 73c27cf4c62cbe44b2b8fd00f907974d0808500c)
This commit is contained in:
Andrew Tridgell 2008-01-15 20:11:44 +11:00
parent 840ba4d5f6
commit 6c56e9d347

View File

@ -756,7 +756,13 @@ static void vacuum_fetch_next(struct vacuum_info *v)
}
data = tdb_fetch(v->ctdb_db->ltdb->tdb, call.key);
if (data.dptr == NULL || data.dsize < sizeof(struct ctdb_ltdb_header)) {
if (data.dptr == NULL) {
tdb_chainunlock(v->ctdb_db->ltdb->tdb, call.key);
continue;
}
if (data.dsize < sizeof(struct ctdb_ltdb_header)) {
free(data.dptr);
tdb_chainunlock(v->ctdb_db->ltdb->tdb, call.key);
continue;
}
@ -764,10 +770,13 @@ static void vacuum_fetch_next(struct vacuum_info *v)
hdr = (struct ctdb_ltdb_header *)data.dptr;
if (hdr->dmaster == v->rec->ctdb->pnn) {
/* its already local */
free(data.dptr);
tdb_chainunlock(v->ctdb_db->ltdb->tdb, call.key);
continue;
}
free(data.dptr);
state = ctdb_call_send(v->ctdb_db, &call);
tdb_chainunlock(v->ctdb_db->ltdb->tdb, call.key);
if (state == NULL) {