'local_err' forgot to free in colo_process_incoming_thread error path. Fix that.
Reported-by: Euler Robot <euler.ro...@huawei.com> Signed-off-by: Pan Nengyuan <pannengy...@huawei.com> --- Cc: Hailiang Zhang <zhang.zhanghaili...@huawei.com> Cc: Juan Quintela <quint...@redhat.com> Cc: "Dr. David Alan Gilbert" <dgilb...@redhat.com> --- - V2: Arrange all 'error_report_err' in 'out' label(suggested by Li Qiang). --- migration/colo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/migration/colo.c b/migration/colo.c index ea7d1e9d4e..2288188fe2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -888,7 +888,6 @@ void *colo_process_incoming_thread(void *opaque) while (mis->state == MIGRATION_STATUS_COLO) { colo_wait_handle_message(mis, fb, bioc, &local_err); if (local_err) { - error_report_err(local_err); break; } @@ -924,6 +923,10 @@ out: qemu_fclose(fb); } + if (local_err) { + error_report_err(local_err); + } + /* Hope this not to be too long to loop here */ qemu_sem_wait(&mis->colo_incoming_sem); qemu_sem_destroy(&mis->colo_incoming_sem); -- 2.18.2