Commit a43d51d1 authored by panny060's avatar panny060 Committed by zhuyanting
Browse files

migration/rdma: fix a memleak on error path in rdma_start_incoming_migration



'rdma->host' is malloced in qemu_rdma_data_init, but forgot to free on the error
path in rdma_start_incoming_migration(), this patch fix that.

Direct leak of 2 byte(s) in 1 object(s) allocated from:
    #0 0xfffce56d34fb in __interceptor_malloc (/lib64/libasan.so.4+0xd34fb)
    #1 0xfffce5158aa3 in g_malloc (/lib64/libglib-2.0.so.0+0x58aa3)
    #2 0xfffce5174213 in g_strdup (/lib64/libglib-2.0.so.0+0x74213)
    #3 0xaaad7c569ddf in qemu_rdma_data_init /Images/qemu/migration/rdma.c:2647
    #4 0xaaad7c57c99f in rdma_start_incoming_migration /Images/qemu/migration/rdma.c:4020
    #5 0xaaad7c52b35f in qemu_start_incoming_migration /Images/qemu/migration/migration.c:371
    #6 0xaaad7be173bf in qemu_init /Images/qemu/softmmu/vl.c:4464
    #7 0xaaad7bb29843 in main /Images/qemu/softmmu/main.c:48
    #8 0xfffce3713f5f in __libc_start_main (/lib64/libc.so.6+0x23f5f)
    #9 0xaaad7bb2bf73  (/Images/qemu/build/aarch64-softmmu/qemu-system-aarch64+0x8fbf73)

Reported-by: default avatarEuler Robot <euler.robot@huawei.com>
Signed-off-by: default avatarPan Nengyuan <pannengyuan@huawei.com>
parent bf7c7b66
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4068,6 +4068,9 @@ void rdma_start_incoming_migration(const char *host_port, Error **errp)
    return;
err:
    error_propagate(errp, local_err);
    if (rdma) {
        g_free(rdma->host);
    }
    g_free(rdma);
    g_free(rdma_return_path);
}