From 7f0044df65ab464e3e33316de23fa7d60ad38f8e Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Sat, 2 Feb 2019 11:29:19 +1100 Subject: [PATCH 1/1] add missing va_end() in bmp.c's write_packed() In general it wasn't calling va_end() on a write failure. CID 185320. --- bmp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bmp.c b/bmp.c index 61a7d82d..caf59b42 100644 --- a/bmp.c +++ b/bmp.c @@ -311,7 +311,7 @@ write_packed(io_glue *ig, char *format, ...) { buf[0] = i & 255; buf[1] = i / 256; if (i_io_write(ig, buf, 2) == -1) - return 0; + goto fail; break; case 'V': @@ -320,14 +320,14 @@ write_packed(io_glue *ig, char *format, ...) { buf[2] = (i >> 16) & 0xFF; buf[3] = (i >> 24) & 0xFF; if (i_io_write(ig, buf, 4) == -1) - return 0; + goto fail; break; case 'C': case 'c': buf[0] = i & 0xFF; if (i_io_write(ig, buf, 1) == -1) - return 0; + goto fail; break; default: @@ -341,6 +341,10 @@ write_packed(io_glue *ig, char *format, ...) { va_end(ap); return 1; + + fail: + va_end(ap); + return 0; } /* -- 2.39.5