MXS-2046: Fix additional memory leaks
A set of memory leaks were revealed by Valgrind.
This commit is contained in:
@ -417,7 +417,7 @@ blr_slave_request(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue)
|
||||
{
|
||||
MXS_ERROR("Invalid slave state machine state (%d) for binlog router.",
|
||||
slave->state);
|
||||
gwbuf_consume(queue, gwbuf_length(queue));
|
||||
gwbuf_free(queue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -495,7 +495,6 @@ blr_slave_request(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue)
|
||||
break;
|
||||
}
|
||||
|
||||
gwbuf_free(queue);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -2159,6 +2158,7 @@ blr_slave_binlog_dump(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue
|
||||
blr_slave_abort_dump_request(slave, errmsg);
|
||||
slave->state = BLRS_ERRORED;
|
||||
dcb_close(slave->dcb);
|
||||
gwbuf_free(fde);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -2202,6 +2202,7 @@ blr_slave_binlog_dump(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue
|
||||
blr_slave_abort_dump_request(slave, errmsg);
|
||||
slave->state = BLRS_ERRORED;
|
||||
dcb_close(slave->dcb);
|
||||
gwbuf_free(fde);
|
||||
return 1;
|
||||
}
|
||||
slave->lastEventReceived = MARIADB10_GTID_GTID_LIST_EVENT;
|
||||
@ -2222,6 +2223,7 @@ blr_slave_binlog_dump(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue
|
||||
/* Force the slave to call catchup routine */
|
||||
poll_fake_write_event(slave->dcb);
|
||||
|
||||
gwbuf_free(fde);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -2787,6 +2789,7 @@ blr_slave_catchup(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, bool large)
|
||||
slave->stats.n_events - events_before,
|
||||
router->current_safe_event,
|
||||
read_errmsg);
|
||||
hdr.ok = SLAVE_POS_READ_OK;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3060,6 +3063,9 @@ blr_slave_catchup(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, bool large)
|
||||
* Fake rotate just written to client,
|
||||
* no need to call poll_fake_write_event()
|
||||
*/
|
||||
|
||||
// blr_slave_fake_rotate closes the file on success
|
||||
file = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -6485,6 +6491,7 @@ blr_slave_read_ste(ROUTER_INSTANCE *router,
|
||||
|
||||
if (!new_encryption_ctx)
|
||||
{
|
||||
gwbuf_free(record);
|
||||
return 0;
|
||||
}
|
||||
record_ptr += BINLOG_EVENT_HDR_LEN;
|
||||
@ -6521,9 +6528,11 @@ blr_slave_read_ste(ROUTER_INSTANCE *router,
|
||||
* Note: if the requested pos is equal to START_ENCRYPTION_EVENT pos
|
||||
* the event will be skipped by blr_read_binlog() routine
|
||||
*/
|
||||
gwbuf_free(record);
|
||||
return 1;
|
||||
}
|
||||
|
||||
gwbuf_free(record);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user