Markus Armbruster <arm...@redhat.com> writes: > <arei.gong...@huawei.com> writes: > >> From: Gonglei <arei.gong...@huawei.com> >> >> Variable "r" going out of scope leaks the storage >> it points to in line 3268. >> >> Signed-off-by: Gonglei <arei.gong...@huawei.com> >> --- >> migration/rdma.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/migration/rdma.c b/migration/rdma.c >> index cf5de7e..de80860 100644 >> --- a/migration/rdma.c >> +++ b/migration/rdma.c >> @@ -3262,12 +3262,13 @@ static const QEMUFileOps rdma_write_ops = { >> >> static void *qemu_fopen_rdma(RDMAContext *rdma, const char *mode) >> { >> - QEMUFileRDMA *r = g_malloc0(sizeof(QEMUFileRDMA)); >> + QEMUFileRDMA *r = NULL; > > Dead initialization, please drop. > >> >> if (qemu_file_mode_is_not_valid(mode)) { >> return NULL; >> } >> >> + r = g_malloc0(sizeof(QEMUFileRDMA)); >> r->rdma = rdma; >> >> if (mode[0] == 'w') { > > Looks good otherwise.
Since you're touching this, you could r = g_new0(QEMUFileRDMA, 1) See commit 5839e53.