ret = message_list_db_fetch(ctdb, key, &hdata);
if (ret == 0) {
h = *(struct ctdb_message_list_header **)hdata.dptr;
+ free(hdata.dptr);
for (m=h->m; m; m=m->next) {
m->message_handler(ctdb, srvid, data, m->message_private);
ret = message_list_db_fetch(ctdb, key, &hdata);
if (ret == 0) {
h = *(struct ctdb_message_list_header **)hdata.dptr;
+ free(hdata.dptr);
for(m=h->m; m; m=m->next) {
m->message_handler(ctdb, srvid, data, m->message_private);
talloc_set_destructor(h, message_header_destructor);
} else {
h = *(struct ctdb_message_list_header **)data.dptr;
+ free(data.dptr);
}
m->h = h;
}
h = *(struct ctdb_message_list_header **)data.dptr;
+ free(data.dptr);
+
for (m=h->m; m; m=m->next) {
if (m->message_private == private_data) {
talloc_free(m);
}
h = *(struct ctdb_message_list_header **)data.dptr;
+ free(data.dptr);
if (h->m == NULL) {
return false;
}