]> granicus.if.org Git - p11-kit/commitdiff
build: Call va_end() always when leaving the function
authorDaiki Ueno <dueno@redhat.com>
Tue, 16 Oct 2018 16:06:56 +0000 (18:06 +0200)
committerDaiki Ueno <ueno@gnu.org>
Wed, 17 Oct 2018 08:13:32 +0000 (10:13 +0200)
common/attrs.c
common/compat.c
common/path.c
trust/parser.c

index aa91891ce74e4b41ed459910c423147fb7e782f7..a387a66bd6ad30520d2af9ec2d428f8a63d69629 100644 (file)
@@ -538,8 +538,10 @@ buffer_append_printf (p11_buffer *buffer,
        va_list va;
 
        va_start (va, format);
-       if (vasprintf (&string, format, va) < 0)
+       if (vasprintf (&string, format, va) < 0) {
+               va_end (va);
                return_if_reached ();
+       }
        va_end (va);
 
        p11_buffer_add (buffer, string, -1);
index 5a9702d5c64a1eee78fe52c344cd6b6da82263bc..48614faac778e6f4203a993a6ddc6f39decee899 100644 (file)
@@ -525,7 +525,10 @@ strconcat (const char *first,
        for (arg = first; arg; arg = va_arg (va, const char*)) {
                size_t old_length = length;
                length += strlen (arg);
-               return_val_if_fail (length >= old_length, NULL);
+               if (length < old_length) {
+                       va_end (va);
+                       return_val_if_reached (NULL);
+               }
        }
 
        va_end (va);
index 5cf0e1ab8152f12641f06571a68fbc0d07e8a4f5..17a6230418553e268208cc732dedcab8bbad3ade 100644 (file)
@@ -218,7 +218,10 @@ p11_path_build (const char *path,
        while (path != NULL) {
                size_t old_len = len;
                len += strlen (path) + 1;
-               return_val_if_fail (len >= old_len, NULL);
+               if (len < old_len) {
+                       va_end (va);
+                       return_val_if_reached (NULL);
+               }
                path = va_arg (va, const char *);
        }
        va_end (va);
index f92cdc91df5a17fe8116450ceb76b9802d6e320b..e912c3adcbbe2ffc8270947eb5aeece9e5482f39 100644 (file)
@@ -697,8 +697,10 @@ p11_parser_formats (p11_parser *parser,
                func = va_arg (va, parser_func);
                if (func == NULL)
                        break;
-               if (!p11_array_push (formats, func))
+               if (!p11_array_push (formats, func)) {
+                       va_end (va);
                        return_if_reached ();
+               }
        }
        va_end (va);