]> err.no Git - dpkg/commitdiff
libdpkg: Call va_end when done with the va_list variable from va_copy
authorGuillem Jover <guillem@debian.org>
Mon, 9 Jun 2008 22:41:59 +0000 (01:41 +0300)
committerGuillem Jover <guillem@debian.org>
Tue, 10 Jun 2008 02:24:00 +0000 (05:24 +0300)
This fixes a memory leak on systems were va_copy needs to allocate
memory.

ChangeLog
lib/varbuf.c

index 5b6987ad027d2ce0c64713af41846a13fcb1a5df..9d59b3cee343c245695deac3eb2509b37d4ff4f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-10  Guillem Jover  <guillem@debian.org>
+
+       * lib/varbuf.c (varbufvprintf): Call va_end when done with the va_list
+       variable from va_copy.
+
 2008-06-10  Guillem Jover  <guillem@debian.org>
 
        * lib/varbuf.c (varbufprintf): Use varbufvprintf instead of
index 63060c212fa2646e551b56ab0b84111435da7c9d..ffcc544cf2754437cd335a53f1f5446010c35084 100644 (file)
@@ -65,6 +65,7 @@ int varbufvprintf(struct varbuf *v, const char *fmt, va_list va) {
     varbufextend(v);
     va_copy(al, va);
     r= vsnprintf(v->buf+ou,v->size-ou,fmt,al);
+    va_end(al);
     if (r < 0) r= (v->size-ou+1) * 2;
     v->used= ou+r;
   } while (r >= (int)(v->size - ou - 1));