diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 173af076960383ef02907052283e49a5f9bfa583..00add9414eddab344a0ecb698f0149f362954a90 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -195,13 +195,10 @@ int lxcContainerSendContinue(int control) writeCount = safewrite(control, &msg, sizeof(msg)); if (writeCount != sizeof(msg)) { - virReportSystemError(errno, "%s", - _("Unable to send container continue message")); goto error_out; } rc = 0; - error_out: return rc; } @@ -224,13 +221,8 @@ static int lxcContainerWaitForContinue(int control) readLen = saferead(control, &msg, sizeof(msg)); if (readLen != sizeof(msg) || msg != LXC_CONTINUE_MSG) { - virReportSystemError(errno, "%s", - _("Failed to read the container continue message")); return -1; } - VIR_FORCE_CLOSE(control); - - VIR_DEBUG("Received container continue message"); return 0; } @@ -793,8 +785,12 @@ static int lxcContainerChild( void *data ) goto cleanup; /* Wait for interface devices to show up */ - if (lxcContainerWaitForContinue(argv->monitor) < 0) + if (lxcContainerWaitForContinue(argv->monitor) < 0) { + virReportSystemError(errno, "%s", + _("Failed to read the container continue message")); goto cleanup; + } + VIR_DEBUG("Received container continue message"); /* rename and enable interfaces */ if (lxcContainerRenameAndEnableInterfaces(argv->nveths, @@ -814,6 +810,7 @@ static int lxcContainerChild( void *data ) cleanup: VIR_FREE(ttyPath); VIR_FORCE_CLOSE(ttyfd); + VIR_FORCE_CLOSE(argv->monitor); if (ret == 0) { /* this function will only return if an error occured */ diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 5c4bd1f5fb2facbd36c12ace37c934b4bd47ec50..cef4b589fecdffd3157c97c69bcf1c589c7ef88e 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -731,8 +731,11 @@ lxcControllerRun(virDomainDefPtr def, if (lxcControllerMoveInterfaces(nveths, veths, container) < 0) goto cleanup; - if (lxcContainerSendContinue(control[0]) < 0) + if (lxcContainerSendContinue(control[0]) < 0) { + virReportSystemError(errno, "%s", + _("Unable to send container continue message")); goto cleanup; + } /* Now the container is running, there's no need for us to keep any elevated capabilities */