[libvirt] [PATCH v2 1/4] util: Make sure the comment about virBufferAddBuffer is true

Martin Kletzander mkletzan at redhat.com
Fri Mar 13 16:17:39 UTC 2015


Change it so it really *always* eats the @toadd buffer.

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 src/util/virbuffer.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c
index 96a0f16..0089d1b 100644
--- a/src/util/virbuffer.c
+++ b/src/util/virbuffer.c
@@ -1,7 +1,7 @@
 /*
  * virbuffer.c: buffers for libvirt
  *
- * Copyright (C) 2005-2008, 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2005-2008, 2010-2015 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
@@ -188,23 +188,27 @@ virBufferAddBuffer(virBufferPtr buf, virBufferPtr toadd)
 {
     unsigned int needSize;

-    if (!buf || !toadd)
+    if (!toadd)
         return;

+    if (!buf)
+        goto done;
+
     if (buf->error || toadd->error) {
         if (!buf->error)
             buf->error = toadd->error;
-        virBufferFreeAndReset(toadd);
-        return;
+        goto done;
     }

     needSize = buf->use + toadd->use;
     if (virBufferGrow(buf, needSize - buf->use) < 0)
-        return;
+        goto done;

     memcpy(&buf->content[buf->use], toadd->content, toadd->use);
     buf->use += toadd->use;
     buf->content[buf->use] = '\0';
+
+ done:
     virBufferFreeAndReset(toadd);
 }

--
2.3.2




More information about the libvir-list mailing list