MXS-2046: Fix additional memory leaks

A set of memory leaks were revealed by Valgrind.
This commit is contained in:
Markus Mäkelä
2018-09-13 13:56:19 +03:00
parent ce602daf10
commit bee7cc2002
6 changed files with 35 additions and 32 deletions

View File

@ -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;
}