From: Jouni Malinen Date: Tue, 6 Jan 2015 13:55:51 +0000 (+0200) Subject: D-Bus: Fix Introspect() in case of os_strdup() failure X-Git-Tag: hostap_2_4~517 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dacf6058129edab7f9c669bf4308342b3ed8905a;p=thirdparty%2Fhostap.git D-Bus: Fix Introspect() in case of os_strdup() failure add_interface() did not check for os_strdup() return value and could end up dereferencing a NULL pointer if memory allocation failed. Signed-off-by: Jouni Malinen --- diff --git a/wpa_supplicant/dbus/dbus_new_introspect.c b/wpa_supplicant/dbus/dbus_new_introspect.c index e0dd9e2e4..6209c6785 100644 --- a/wpa_supplicant/dbus/dbus_new_introspect.c +++ b/wpa_supplicant/dbus/dbus_new_introspect.c @@ -37,14 +37,16 @@ static struct interfaces * add_interface(struct dl_list *list, iface = os_zalloc(sizeof(struct interfaces)); if (!iface) return NULL; + iface->dbus_interface = os_strdup(dbus_interface); iface->xml = wpabuf_alloc(6000); - if (iface->xml == NULL) { + if (iface->dbus_interface == NULL || iface->xml == NULL) { + os_free(iface->dbus_interface); + wpabuf_free(iface->xml); os_free(iface); return NULL; } wpabuf_printf(iface->xml, "", dbus_interface); dl_list_add_tail(list, &iface->list); - iface->dbus_interface = os_strdup(dbus_interface); return iface; }