From 8369ddfd1b14eed645b1c7facd297886bebf3fe1 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 23 Apr 2018 11:53:16 -0400 Subject: [PATCH] libxl: Add refcnt for args->vm during migration When adding the @vm to the @args for usage during a thread or callback, let's add the reference to it at the time of adding to ensure nothing else deletes it. The corresponding Unref is then added to the Dispose function. Signed-off-by: John Ferlan Reviewed-by: Marc Hartmayer Reviewed-by: Erik Skultety --- src/libxl/libxl_migration.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index d7b494b392..7fe352306c 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -239,6 +239,7 @@ libxlMigrationDstArgsDispose(void *obj) libxlMigrationCookieFree(args->migcookie); VIR_FREE(args->socks); + virObjectUnref(args->vm); } static int @@ -608,7 +609,7 @@ libxlDomainMigrationDstPrepareTunnel3(virConnectPtr dconn, goto error; args->conn = dconn; - args->vm = vm; + args->vm = virObjectRef(vm); args->flags = flags; args->migcookie = mig; /* Receive from pipeOut */ @@ -763,7 +764,7 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn, goto error; args->conn = dconn; - args->vm = vm; + args->vm = virObjectRef(vm); args->flags = flags; args->socks = socks; args->nsocks = nsocks;