From: Jevon Qiao Date: Thu, 28 Jul 2016 07:26:38 +0000 (+0800) Subject: Fix memory leak in _fio_rbd_connect() X-Git-Tag: fio-2.14~76 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=6ec0dcd1f7c02db47f23eb5cc400772ea095704b;p=fio.git Fix memory leak in _fio_rbd_connect() When running fio with rbd engine and specifying clustername, a piece of memory will be allocated in _fio_rbd_connect(), but it never gets freed. Signed-off-by: Jevon Qiao --- diff --git a/engines/rbd.c b/engines/rbd.c index c5abd2d2..c85645ae 100644 --- a/engines/rbd.c +++ b/engines/rbd.c @@ -140,12 +140,17 @@ static int _fio_rbd_connect(struct thread_data *td) client_name = calloc(1, strlen("client.") + strlen(o->client_name) + 1); strcat(client_name, "client."); - o->client_name = strcat(client_name, - o->client_name); + strcat(client_name, o->client_name); + } else { + client_name = o->client_name; } } + r = rados_create2(&rbd->cluster, o->cluster_name, - o->client_name, 0); + client_name, 0); + + if (client_name && !index(o->client_name, '.')) + free(client_name); } else r = rados_create(&rbd->cluster, o->client_name);