[Pkg-libvirt-commits] [libguestfs] 129/266: daemon: Fix echo-daemon so it doesn't fail on empty array input.

Hilko Bengen bengen at moszumanska.debian.org
Fri Oct 3 14:41:51 UTC 2014


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to annotated tag debian/1%1.27.35-1
in repository libguestfs.

commit 8b3b7cc0daf424249d49fbd7bca2d3a80d1af556
Author: Richard W.M. Jones <rjones at redhat.com>
Date:   Tue Aug 19 12:16:04 2014 +0100

    daemon: Fix echo-daemon so it doesn't fail on empty array input.
---
 daemon/echo-daemon.c | 45 +++++----------------------------------------
 generator/actions.ml |  4 +++-
 2 files changed, 8 insertions(+), 41 deletions(-)

diff --git a/daemon/echo-daemon.c b/daemon/echo-daemon.c
index c805819..d566a9b 100644
--- a/daemon/echo-daemon.c
+++ b/daemon/echo-daemon.c
@@ -26,48 +26,13 @@
 char *
 do_echo_daemon (char *const *argv)
 {
-  char *out = NULL;
-  size_t out_len = 0;
+  char *out;
 
-  /* Iterate over argv entries until reaching the NULL terminator */
-  while (*argv) {
-    char add_space = 0;
-
-    /* Store the end of current output */
-    size_t out_end = out_len;
-
-    /* Calculate the new output size */
-    size_t arg_len = strlen(*argv);
-    out_len += arg_len;
-
-    /* We will prepend a space if this isn't the first argument added */
-    if (NULL != out) {
-      out_len++;
-      add_space = 1;
-    }
-
-    /* Make the output buffer big enough for the string and its terminator */
-    char *out_new = realloc (out, out_len + 1);
-    if (NULL == out_new) {
-      reply_with_perror ("realloc");
-      free (out);
-      return 0;
-    }
-    out = out_new;
-
-    /* Prepend a space if required */
-    if (add_space) {
-      out[out_end++] = ' ';
-    }
-
-    /* Copy the argument to the output */
-    memcpy(&out[out_end], *argv, arg_len);
-
-    argv++;
+  out = join_strings (" ", argv);
+  if (out == NULL) {
+    reply_with_perror ("malloc");
+    return NULL;
   }
 
-  /* NULL terminate the output */
-  out[out_len] = '\0';
-
   return out;
 }
diff --git a/generator/actions.ml b/generator/actions.ml
index 245da6f..fdb3592 100644
--- a/generator/actions.ml
+++ b/generator/actions.ml
@@ -7210,7 +7210,9 @@ was built (see C<appliance/kmod.whitelist.in> in the source)." };
     proc_nr = Some 195;
     tests = [
       InitNone, Always, TestResultString (
-        [["echo_daemon"; "This is a test"]], "This is a test"), []
+        [["echo_daemon"; "This is a test"]], "This is a test"), [];
+      InitNone, Always, TestResultString (
+        [["echo_daemon"; ""]], ""), [];
     ];
     shortdesc = "echo arguments back to the client";
     longdesc = "\

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git



More information about the Pkg-libvirt-commits mailing list