[libvirt] [PATCH] lxc: use common code for process cleanup

2011-11-03 Thread Eric Blake
Based on a Coverity report - the return value of waitpid() should
always be checked, to avoid problems with leaking resources.

* src/lxc/lxc_controller.c (lxcControllerRun): Use simpler virPidAbort.
---

Daniel previously said to wait until after the lxc multi-console
patches were in before visiting this file; but now that those are
in, this fix is still applicable:
https://www.redhat.com/archives/libvir-list/2011-October/msg01083.html

 src/lxc/lxc_controller.c |   11 +++
 1 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 649ac87..137ef52 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -59,6 +59,7 @@
 #include util.h
 #include virfile.h
 #include virpidfile.h
+#include command.h

 #define VIR_FROM_THIS VIR_FROM_LXC

@@ -1266,14 +1267,8 @@ cleanup:
 VIR_FORCE_CLOSE(loopDevs[i]);
 VIR_FREE(loopDevs);

-if (container  1) {
-int status;
-kill(container, SIGTERM);
-if (!(waitpid(container, status, WNOHANG) == 0 
-WIFEXITED(status)))
-kill(container, SIGKILL);
-waitpid(container, NULL, 0);
-}
+virPidAbort(container);
+
 return rc;
 }

-- 
1.7.4.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] lxc: use common code for process cleanup

2011-11-03 Thread Daniel P. Berrange
On Thu, Nov 03, 2011 at 08:45:45AM -0600, Eric Blake wrote:
 Based on a Coverity report - the return value of waitpid() should
 always be checked, to avoid problems with leaking resources.
 
 * src/lxc/lxc_controller.c (lxcControllerRun): Use simpler virPidAbort.
 ---
 
 Daniel previously said to wait until after the lxc multi-console
 patches were in before visiting this file; but now that those are
 in, this fix is still applicable:
 https://www.redhat.com/archives/libvir-list/2011-October/msg01083.html
 
  src/lxc/lxc_controller.c |   11 +++
  1 files changed, 3 insertions(+), 8 deletions(-)
 
 diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
 index 649ac87..137ef52 100644
 --- a/src/lxc/lxc_controller.c
 +++ b/src/lxc/lxc_controller.c
 @@ -59,6 +59,7 @@
  #include util.h
  #include virfile.h
  #include virpidfile.h
 +#include command.h
 
  #define VIR_FROM_THIS VIR_FROM_LXC
 
 @@ -1266,14 +1267,8 @@ cleanup:
  VIR_FORCE_CLOSE(loopDevs[i]);
  VIR_FREE(loopDevs);
 
 -if (container  1) {
 -int status;
 -kill(container, SIGTERM);
 -if (!(waitpid(container, status, WNOHANG) == 0 
 -WIFEXITED(status)))
 -kill(container, SIGKILL);
 -waitpid(container, NULL, 0);
 -}
 +virPidAbort(container);
 +
  return rc;
  }

ACK


Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] lxc: use common code for process cleanup

2011-11-03 Thread Eric Blake

On 11/03/2011 08:48 AM, Daniel P. Berrange wrote:

On Thu, Nov 03, 2011 at 08:45:45AM -0600, Eric Blake wrote:

Based on a Coverity report - the return value of waitpid() should
always be checked, to avoid problems with leaking resources.

* src/lxc/lxc_controller.c (lxcControllerRun): Use simpler virPidAbort.
---



ACK


Pushed.

--
Eric Blake   ebl...@redhat.com+1-801-349-2682
Libvirt virtualization library http://libvirt.org

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list