aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-11-15 20:39:30 +0000
committerMatt Fleming <matt.fleming@intel.com>2012-11-15 20:39:30 +0000
commit6f50d20ba362315dea4ecaf44336c3aaa4284975 (patch)
tree55db3981b3f9d09585782c256ad77c9ed0affb50
parent348ae6af01350a9a46f3076a2facd27918f0f603 (diff)
downloadsyslinux-6f50d20ba362315dea4ecaf44336c3aaa4284975.tar.gz
syslinux-6f50d20ba362315dea4ecaf44336c3aaa4284975.tar.xz
syslinux-6f50d20ba362315dea4ecaf44336c3aaa4284975.zip
bufprintf: Add va_end() for our va_copy()
According to the stdarg(3) man page each invocation of va_copy() should be paired with an invocation of va_end(). Cc: Erwan Velu <erwanaliasr1@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r--com32/lib/bufprintf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/com32/lib/bufprintf.c b/com32/lib/bufprintf.c
index 939bcec3..d2812311 100644
--- a/com32/lib/bufprintf.c
+++ b/com32/lib/bufprintf.c
@@ -17,8 +17,10 @@ int vbufprintf(struct print_buf *buf, const char *format, va_list ap)
char *newbuf;
newbuf = realloc(buf->buf, newsize);
- if (!newbuf)
- return -1;
+ if (!newbuf) {
+ rv = -1;
+ goto bail;
+ }
buf->buf = newbuf;
buf->size = newsize;
@@ -26,6 +28,8 @@ int vbufprintf(struct print_buf *buf, const char *format, va_list ap)
rv = vsnprintf(buf->buf + buf->len, buf->size - buf->len, format, ap2);
buf->len += rv;
+bail:
+ va_end(ap2);
return rv;
}