eldbus - fix varargs missing end in iter get and next
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 14 Aug 2014 09:52:31 +0000 (18:52 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 14 Aug 2014 09:53:40 +0000 (18:53 +0900)
there was an error return handler that would return without doing
va_end(). coverity picked this up. this fixes CID 1039883

src/lib/eldbus/eldbus_message.c

index 1d1eeb8..aa44410 100644 (file)
@@ -717,7 +717,11 @@ eldbus_message_iter_get_and_next(Eldbus_Message_Iter *iter, char signature, ...)
         Eldbus_Message_Iter **iter_var = va_arg(vl, Eldbus_Message_Iter**);
 
         sub = _message_iterator_new(EINA_FALSE);
-        EINA_SAFETY_ON_NULL_RETURN_VAL(sub, EINA_FALSE);
+        if (!sub)
+          {
+             va_end(vl);
+             return EINA_FALSE;
+          }
         dbus_message_iter_recurse(&iter->dbus_iterator,
                                   &sub->dbus_iterator);
         iter->iterators = eina_inlist_append(iter->iterators,