fix leaks due to missing invocations of va_end
authorPiotr Trojanek <piotr.trojanek@gmail.com>
Fri, 16 Jun 2017 22:50:23 +0000 (23:50 +0100)
committerDavid Bremner <david@tethera.net>
Sun, 25 Jun 2017 12:35:23 +0000 (09:35 -0300)
As the Linux man page states: "Each invocation of va_start() must be
matched by a corresponding invocation of va_end() in the same
function." Detected by cppcheck.

tag-util.c

index 7091d294beae1cf9c0150377d867604d0fd2d45e..30c2c07764ca47b5afa9d8c2b97527d83aa2037e 100644 (file)
@@ -28,6 +28,9 @@ line_error (tag_parse_status_t status,
     fprintf (stderr, status < 0 ? "Error: " : "Warning: ");
     vfprintf (stderr, format, va_args);
     fprintf (stderr, " [%s]\n", line);
+
+    va_end (va_args);
+
     return status;
 }
 
@@ -200,6 +203,8 @@ message_error (notmuch_message_t *message,
     vfprintf (stderr, format, va_args);
     fprintf (stderr, "Message-ID: %s\n", notmuch_message_get_message_id (message));
     fprintf (stderr, "Status: %s\n", notmuch_status_to_string (status));
+
+    va_end (va_args);
 }
 
 static int