diff options
| author | Russ White <russ@riw.us> | 2019-10-25 13:53:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-25 13:53:39 -0400 |
| commit | de0954ad41411a98ab69701463481d7209dc0448 (patch) | |
| tree | 43970f653097a287ec0bfcc60a8f5dc7da87c01b /lib/printf/glue.c | |
| parent | e1a3c0effa627eb9e5d20da8782708425417f970 (diff) | |
| parent | 253283d7420ce1c5fbf7d3c53ca4b335317ed5cd (diff) | |
Merge pull request #5223 from donaldsharp/fix_it_it_it_it_it_it
Fix it it it it it it
Diffstat (limited to 'lib/printf/glue.c')
| -rw-r--r-- | lib/printf/glue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/printf/glue.c b/lib/printf/glue.c index 1b760dc2d3..29ca26ad5d 100644 --- a/lib/printf/glue.c +++ b/lib/printf/glue.c @@ -101,9 +101,11 @@ char *vasnprintfrr(struct memtype *mt, char *out, size_t outsz, const char *fmt, va_copy(ap2, ap); len = vbprintfrr(&fb, fmt, ap); - if (len < 0) + if (len < 0) { + va_end(ap2); /* error = malformed format string => try something useful */ return qstrdup(mt, fmt); + } if ((size_t)len >= outsz - 1) { ret = qmalloc(mt, len + 1); @@ -112,6 +114,8 @@ char *vasnprintfrr(struct memtype *mt, char *out, size_t outsz, const char *fmt, vbprintfrr(&fb, fmt, ap2); } + + va_end(ap2); ret[len] = '\0'; return ret; } |
