[prevent][43479] Fix for missing va_end in _atspi_dbus_call_partial
[platform/upstream/at-spi2-core.git] / atspi / atspi-misc.c
index 02eab8c..65003df 100644 (file)
@@ -999,6 +999,7 @@ check_for_hang (DBusMessage *message, DBusError *error, DBusConnection *bus, con
     DBusMessage *message;
     gchar *bus_name_dup;
     DBusPendingCall *pending = NULL;
+    dbus_bool_t result;
     for (l = hung_processes; l; l = l->next)
       if (!strcmp (l->data, bus_name))
         return;
@@ -1007,9 +1008,9 @@ check_for_hang (DBusMessage *message, DBusError *error, DBusConnection *bus, con
                                             "Ping");
     if (!message)
       return;
-    dbus_connection_send_with_reply (bus, message, &pending, -1);
+    result = dbus_connection_send_with_reply (bus, message, &pending, -1);
     dbus_message_unref (message);
-    if (!pending)
+    if (!result || !pending)
       return;
     bus_name_dup = g_strdup (bus_name);
     hung_processes = g_slist_append (hung_processes, bus_name_dup);
@@ -1106,9 +1107,11 @@ _atspi_dbus_call_partial (gpointer obj,
                           const char *type, ...)
 {
   va_list args;
-
+  DBusMessage * result;
   va_start (args, type);
-  return _atspi_dbus_call_partial_va (obj, interface, method, error, type, args);
+  result =  _atspi_dbus_call_partial_va (obj, interface, method, error, type, args);
+  va_end (args);
+  return result;
 }
 
 
@@ -1153,6 +1156,7 @@ out:
     dbus_error_free (&err);
     if (reply)
       dbus_message_unref(reply);
+    return NULL;
   }
   else if (reply && dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR)
   {