dbus: Initialize temporary entry properly (CID 62877)
authorJouni Malinen <j@w1.fi>
Thu, 12 Jun 2014 17:02:00 +0000 (20:02 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 12 Jun 2014 21:27:15 +0000 (00:27 +0300)
The tmpentry variable was not initialized and
_wpa_dbus_dict_entry_get_byte_array() does not set tmpentry.type, so it
would have been possible for the error path to end up trying to free
unexpected type of an entry or not free the memory at all.

Signed-off-by: Jouni Malinen <j@w1.fi>
wpa_supplicant/dbus/dbus_dict_helpers.c

index 61a9430..80a1178 100644 (file)
@@ -881,6 +881,8 @@ static dbus_bool_t _wpa_dbus_dict_entry_get_binarray(
                }
 
                dbus_message_iter_recurse(iter, &iter_array);
+               os_memset(&tmpentry, 0, sizeof(tmpentry));
+               tmpentry.type = DBUS_TYPE_ARRAY;
                if (_wpa_dbus_dict_entry_get_byte_array(&iter_array, &tmpentry)
                                        == FALSE)
                        goto cleanup;