[libvirt] [PATCH] virBufferStrcat: do not skip va_end

Jim Meyering jim at meyering.net
Thu Feb 18 19:51:59 UTC 2010


Another missed va_end:

>From b2e727f9dd25f427d634ef4d79733b37af2b29dd Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Thu, 18 Feb 2010 20:46:24 +0100
Subject: [PATCH] virBufferStrcat: do not skip va_end

* src/util/buf.c (virBufferStrcat): Do not skip va_end due to
an early return.
---
 src/util/buf.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/util/buf.c b/src/util/buf.c
index e683928..cc0a087 100644
--- a/src/util/buf.c
+++ b/src/util/buf.c
@@ -1,21 +1,21 @@
 /*
  * buf.c: buffers for libvirt
  *
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2008, 2010 Red Hat, Inc.
  *
  * See COPYING.LIB for the License of this software
  *
  * Daniel Veillard <veillard at redhat.com>
  */

 #include <config.h>

 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
 #include "c-ctype.h"

 #define __VIR_BUFFER_C__

 #include "buf.h"
@@ -410,25 +410,25 @@ virBufferURIEncodeString (virBufferPtr buf, const char *str)
 void
 virBufferStrcat(virBufferPtr buf, ...)
 {
     va_list ap;
     char *str;

     if (buf->error)
         return;

     va_start(ap, buf);

     while ((str = va_arg(ap, char *)) != NULL) {
         unsigned int len = strlen(str);
         unsigned int needSize = buf->use + len + 2;

         if (needSize > buf->size) {
             if (virBufferGrow(buf, needSize - buf->use) < 0)
-                return;
+                break;
         }
         memcpy(&buf->content[buf->use], str, len);
         buf->use += len;
         buf->content[buf->use] = 0;
     }
     va_end(ap);
 }
--
1.7.0.233.g05e1a




More information about the libvir-list mailing list