Fix reading of past-the-end memory

The buffer that binlogrouter allocated for the error message was too
small. ASAN happened to catch this.
This commit is contained in:
Markus Mäkelä 2018-07-11 19:26:08 +03:00
parent 4162116109
commit e963f4e82b
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19

View File

@ -222,17 +222,12 @@ static void blr_start_master(void* data)
router->retry_count++;
spinlock_release(&router->lock);
/* Set reconnection task */
static const char master[] = "Master";
char *name = (char *)MXS_MALLOC(strlen(router->service->name) + sizeof(master));
if (name)
{
sprintf(name, "%s %s", router->service->name, master);
hktask_add(name,
blr_start_master_in_main,
router,
connect_retry);
MXS_FREE(name);
}
std::string name = router->service->name;
name += " Master";
hktask_add(name.c_str(),
blr_start_master_in_main,
router,
connect_retry);
MXS_ERROR("%s: failure while connecting to master server '%s', "
"retrying in %d seconds",