Prevent double free of rerouted queries
When the routing of a queued query fails, the route_stored_query function extract the SQL from and frees the already freed buffer.
This commit is contained in:
@ -485,18 +485,7 @@ static bool route_stored_query(RWSplitSession *rses)
|
|||||||
if (!routeQuery((MXS_ROUTER*)rses->router, (MXS_ROUTER_SESSION*)rses, query_queue))
|
if (!routeQuery((MXS_ROUTER*)rses->router, (MXS_ROUTER_SESSION*)rses, query_queue))
|
||||||
{
|
{
|
||||||
rval = false;
|
rval = false;
|
||||||
char* sql = modutil_get_SQL(query_queue);
|
MXS_ERROR("Failed to route queued query.");
|
||||||
|
|
||||||
if (sql)
|
|
||||||
{
|
|
||||||
MXS_ERROR("Routing query \"%s\" failed.", sql);
|
|
||||||
MXS_FREE(sql);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MXS_ERROR("Failed to route query.");
|
|
||||||
}
|
|
||||||
gwbuf_free(query_queue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rses->query_queue == NULL)
|
if (rses->query_queue == NULL)
|
||||||
|
|||||||
Reference in New Issue
Block a user