Richard W.M. Jones
2009-Sep-17 16:49 UTC
[Libguestfs] [PATCH] Fix code which looked for leaked FDs between each command.
-- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://et.redhat.com/~rjones/libguestfs/ See what it can do: http://et.redhat.com/~rjones/libguestfs/recipes.html -------------- next part -------------->From d5fad33b4eaa39722ea1dc96de9446ffc4805e01 Mon Sep 17 00:00:00 2001From: Richard Jones <rjones at trick.home.annexia.org> Date: Thu, 17 Sep 2009 16:44:20 +0100 Subject: [PATCH 1/3] Fix code which looked for leaked FDs between each command. This code was not checking the return value from system() so it failed if uncommented. Add ignore_value() around the call to system. However, leave the code still disabled. --- daemon/m4/gnulib-cache.m4 | 3 ++- daemon/proto.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/daemon/m4/gnulib-cache.m4 b/daemon/m4/gnulib-cache.m4 index ea499d8..bd6cf61 100644 --- a/daemon/m4/gnulib-cache.m4 +++ b/daemon/m4/gnulib-cache.m4 @@ -15,12 +15,13 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl hash manywarnings warnings +# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl hash ignore-value manywarnings warnings # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ hash + ignore-value manywarnings warnings ]) diff --git a/daemon/proto.c b/daemon/proto.c index c0e3927..c22bbee 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -29,6 +29,8 @@ #include <rpc/types.h> #include <rpc/xdr.h> +#include "ignore-value.h" + #include "daemon.h" #include "../src/guestfs_protocol.h" @@ -53,13 +55,11 @@ main_loop (int _sock) sock = _sock; for (;;) { -#if 0 /* Most common errors are leaked memory and leaked file descriptors, * so run this between each command: */ - if (verbose) - system ("ls -l /proc/self/fd"); -#endif + if (verbose && 0) + ignore_value (system ("ls -l /proc/self/fd")); /* Read the length word. */ if (xread (sock, lenbuf, 4) == -1) -- 1.6.2.5
Jim Meyering
2009-Sep-17 17:08 UTC
[Libguestfs] [PATCH] Fix code which looked for leaked FDs between each command.
Richard W.M. Jones wrote:> # Specification in the form of a few gnulib-tool.m4 macro invocations: > gl_LOCAL_DIR([]) > gl_MODULES([ > hash > + ignore-value > manywarnings > warnings > ]) > diff --git a/daemon/proto.c b/daemon/proto.c > index c0e3927..c22bbee 100644 > --- a/daemon/proto.c > +++ b/daemon/proto.c > @@ -29,6 +29,8 @@ > #include <rpc/types.h> > #include <rpc/xdr.h> > > +#include "ignore-value.h" > + > #include "daemon.h" > #include "../src/guestfs_protocol.h" > > @@ -53,13 +55,11 @@ main_loop (int _sock) > sock = _sock; > > for (;;) { > -#if 0 > /* Most common errors are leaked memory and leaked file descriptors, > * so run this between each command: > */ > - if (verbose) > - system ("ls -l /proc/self/fd"); > -#endif > + if (verbose && 0) > + ignore_value (system ("ls -l /proc/self/fd"));Ack. I like the replacement of #if-0 with if (... && 0), too.