]> git.proxmox.com Git - mirror_frr.git/commitdiff
lib: va_end must be called
authorDonald Sharp <sharpd@nvidia.com>
Sun, 21 May 2023 23:59:41 +0000 (19:59 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 22 May 2023 14:52:54 +0000 (10:52 -0400)
According to the man page a va_start must be followed by
a va_end before the end of the function.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
lib/printf/glue.c

index 25e2ff37a3cb3ece130bb8838020c6d8f3f8abad..f799378af39870682160a71f7747c4a05ca1645e 100644 (file)
@@ -273,6 +273,7 @@ static ssize_t printfrr_va(struct fbuf *buf, struct printfrr_eargs *ea,
 {
        const struct va_format *vaf = ptr;
        va_list ap;
+       ssize_t s;
 
        if (!vaf || !vaf->fmt || !vaf->va)
                return bputs(buf, "NULL");
@@ -285,6 +286,9 @@ static ssize_t printfrr_va(struct fbuf *buf, struct printfrr_eargs *ea,
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
        /* can't format check this */
-       return vbprintfrr(buf, vaf->fmt, ap);
+       s = vbprintfrr(buf, vaf->fmt, ap);
 #pragma GCC diagnostic pop
+       va_end(ap);
+
+       return s;
 }