chiark / gitweb /
shared: call va_end in all cases
[elogind.git] / src / shared / util.c
index 02ee6374c33aa2f50bf9c777c557d823f6bec3b1..97f766c33c5b043559472d3b6817d442626c4bc1 100644 (file)
@@ -1184,7 +1184,7 @@ char *strnappend(const char *s, const char *suffix, size_t b) {
         assert(suffix);
 
         a = strlen(s);
-        if ((size_t) -1 - a > b)
+        if (b > ((size_t) -1) - a)
                 return NULL;
 
         r = new(char, a+b+1);
@@ -5024,8 +5024,10 @@ char *strjoin(const char *x, ...) {
                                 break;
 
                         n = strlen(t);
-                        if (n > ((size_t) -1) - l)
+                        if (n > ((size_t) -1) - l) {
+                                va_end(ap);
                                 return NULL;
+                        }
 
                         l += n;
                 }