Fixed a couple of memory leaks
This commit is contained in:
@ -255,6 +255,8 @@ dcb_add_to_zombieslist(DCB *dcb)
|
|||||||
static void
|
static void
|
||||||
dcb_final_free(DCB *dcb)
|
dcb_final_free(DCB *dcb)
|
||||||
{
|
{
|
||||||
|
DCB_CALLBACK *cb;
|
||||||
|
|
||||||
CHK_DCB(dcb);
|
CHK_DCB(dcb);
|
||||||
ss_info_dassert(dcb->state == DCB_STATE_DISCONNECTED,
|
ss_info_dassert(dcb->state == DCB_STATE_DISCONNECTED,
|
||||||
"dcb not in DCB_STATE_DISCONNECTED state.");
|
"dcb not in DCB_STATE_DISCONNECTED state.");
|
||||||
@ -315,6 +317,14 @@ dcb_final_free(DCB *dcb)
|
|||||||
while ((queue = gwbuf_consume(queue, GWBUF_LENGTH(queue))) != NULL);
|
while ((queue = gwbuf_consume(queue, GWBUF_LENGTH(queue))) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spinlock_acquire(&dcb->cb_lock);
|
||||||
|
while ((cb = dcb->callbacks) != NULL)
|
||||||
|
{
|
||||||
|
dcb->callbacks = cb->next;
|
||||||
|
free(cb);
|
||||||
|
}
|
||||||
|
spinlock_release(&dcb->cb_lock);
|
||||||
|
|
||||||
bitmask_free(&dcb->memdata.bitmask);
|
bitmask_free(&dcb->memdata.bitmask);
|
||||||
simple_mutex_done(&dcb->dcb_read_lock);
|
simple_mutex_done(&dcb->dcb_read_lock);
|
||||||
simple_mutex_done(&dcb->dcb_write_lock);
|
simple_mutex_done(&dcb->dcb_write_lock);
|
||||||
|
|||||||
@ -398,6 +398,12 @@ int prev_val;
|
|||||||
router,
|
router,
|
||||||
prev_val-1)));
|
prev_val-1)));
|
||||||
|
|
||||||
|
if (slave->hostname)
|
||||||
|
free(slave->hostname);
|
||||||
|
if (slave->user)
|
||||||
|
free(slave->user);
|
||||||
|
if (slave->passwd)
|
||||||
|
free(slave->passwd);
|
||||||
free(slave);
|
free(slave);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user