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

2010-02-19 Thread Daniel Veillard
On Thu, Feb 18, 2010 at 08:29:38PM +0100, Jim Meyering wrote:
> More coverity-prompted fixes:
> 
> >From 56d339d99b09c5943fa36600ca39939080cc64f4 Mon Sep 17 00:00:00 2001
> From: Jim Meyering 
> 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.
>   */

  ACK,

Daniel

-- 
Daniel Veillard  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

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


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

2010-02-18 Thread Jim Meyering
More coverity-prompted fixes:

>From 56d339d99b09c5943fa36600ca39939080cc64f4 Mon Sep 17 00:00:00 2001
From: Jim Meyering 
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

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