From bc96c12b61993ff62cb3df9c7796584deb4986e1 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mon, 9 Jan 2012 17:50:20 +0100 Subject: [PATCH] agent: Handle empty D-Bus message In case the agent sends wrongly an empty reply. --- src/agent.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/agent.c b/src/agent.c index 9c789cf..d8d0fe6 100644 --- a/src/agent.c +++ b/src/agent.c @@ -111,6 +111,9 @@ static void request_input_passphrase_reply(DBusPendingCall *call, void *user_dat values_received = TRUE; dbus_message_iter_init(reply, &iter); + if (dbus_message_iter_has_next(&iter) == FALSE) + goto done; + dbus_message_iter_recurse(&iter, &dict); while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) { DBusMessageIter entry, value; @@ -337,6 +340,9 @@ static void request_input_login_reply(DBusPendingCall *call, void *user_data) goto done; dbus_message_iter_init(reply, &iter); + if (dbus_message_iter_has_next(&iter) == FALSE) + goto done; + dbus_message_iter_recurse(&iter, &dict); while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) { DBusMessageIter entry, value; -- 2.7.4