eldbus: Only call va_end() if the signature does not match after rewrite
authorStefan Schmidt <s.schmidt@samsung.com>
Thu, 4 Sep 2014 08:35:05 +0000 (10:35 +0200)
committerStefan Schmidt <s.schmidt@samsung.com>
Thu, 4 Sep 2014 08:35:05 +0000 (10:35 +0200)
If git log is right this is patch number 4 for this CID. Lets hope we handle all
cases for starting and ending va now.

CID 1039883

src/lib/eldbus/eldbus_message.c

index 820afed..d6b18d3 100644 (file)
@@ -710,8 +710,11 @@ eldbus_message_iter_get_and_next(Eldbus_Message_Iter *iter, char signature, ...)
      {
         if (signature == '(') signature = 'r';
         else if (signature == '{') signature = 'e';
-        va_end(vl);
-        EINA_SAFETY_ON_FALSE_RETURN_VAL(type == signature, EINA_FALSE);
+        if (type != signature)
+          {
+             va_end(vl);
+             return EINA_FALSE;
+          }
      }
 
    if (dbus_type_is_basic(type))