[libvirt] [PATCH] qparams.c: do not skip va_end, twice

Jim Meyering jim at meyering.net
Thu Feb 18 19:29:38 UTC 2010


More coverity-prompted fixes:

>From 56d339d99b09c5943fa36600ca39939080cc64f4 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Thu, 18 Feb 2010 20:27:22 +0100
Subject: [PATCH] qparams.c: do not skip va_end, twice

* src/util/qparams.c (new_qparam_set, append_qparams): Do not skip
va_end due to an early return.
---
 src/util/qparams.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/util/qparams.c b/src/util/qparams.c
index 9535ca4..f6d0713 100644
--- a/src/util/qparams.c
+++ b/src/util/qparams.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 2007, 2009 Red Hat, Inc.
+/* Copyright (C) 2007, 2009-2010 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
@@ -60,11 +60,12 @@ new_qparam_set (int init_alloc, ...)
     while ((pname = va_arg (args, char *)) != NULL) {
         pvalue = va_arg (args, char *);

         if (append_qparam (ps, pname, pvalue) == -1) {
             free_qparam_set (ps);
-            return NULL;
+            ps = NULL;
+            break;
         }
     }
     va_end (args);

     return ps;
@@ -73,21 +74,24 @@ new_qparam_set (int init_alloc, ...)
 int
 append_qparams (struct qparam_set *ps, ...)
 {
     va_list args;
     const char *pname, *pvalue;
+    int ret = 0;

     va_start (args, ps);
     while ((pname = va_arg (args, char *)) != NULL) {
         pvalue = va_arg (args, char *);

-        if (append_qparam (ps, pname, pvalue) == -1)
-            return -1;
+        if (append_qparam (ps, pname, pvalue) == -1) {
+            ret = -1;
+            break;
+        }
     }
     va_end (args);

-    return 0;
+    return ret;
 }

 /* Ensure there is space to store at least one more parameter
  * at the end of the set.
  */
--
1.7.0.233.g05e1a




More information about the libvir-list mailing list