fix missing va_end() calls

Tue, 16 Jan 2024 23:15:36 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 16 Jan 2024 23:15:36 +0100
changeset 811
b02ad05c7f2d
parent 810
85859399a0cc
child 812
fda0f1910d7e

fix missing va_end() calls

src/printf.c file | annotate | diff | comparison | revisions
     1.1 --- a/src/printf.c	Tue Jan 16 23:13:01 2024 +0100
     1.2 +++ b/src/printf.c	Tue Jan 16 23:15:36 2024 +0100
     1.3 @@ -61,17 +61,21 @@
     1.4      va_copy(ap2, ap);
     1.5      int ret = vsnprintf(buf, CX_PRINTF_SBO_SIZE, fmt, ap);
     1.6      if (ret < 0) {
     1.7 +        va_end(ap2);
     1.8          return ret;
     1.9      } else if (ret < CX_PRINTF_SBO_SIZE) {
    1.10 +        va_end(ap2);
    1.11          return (int) wfc(buf, 1, ret, stream);
    1.12      } else {
    1.13          int len = ret + 1;
    1.14          char *newbuf = malloc(len);
    1.15          if (!newbuf) {
    1.16 +            va_end(ap2);
    1.17              return -1;
    1.18          }
    1.19  
    1.20          ret = vsnprintf(newbuf, len, fmt, ap2);
    1.21 +        va_end(ap2);
    1.22          if (ret > 0) {
    1.23              ret = (int) wfc(newbuf, 1, ret, stream);
    1.24          }
    1.25 @@ -124,6 +128,7 @@
    1.26              }
    1.27          }
    1.28      }
    1.29 +    va_end(ap2);
    1.30      return s;
    1.31  }
    1.32  

mercurial