Hello community, here is the log from the commit of package wpa_supplicant for openSUSE:12.1:Update:Test checked in at 2012-02-20 18:14:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.1:Update:Test/wpa_supplicant (Old) and /work/SRC/openSUSE:12.1:Update:Test/.wpa_supplicant.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wpa_supplicant", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:12.1:Update:Test/wpa_supplicant/wpa_supplicant.changes 2011-11-24 20:16:05.000000000 +0100 +++ /work/SRC/openSUSE:12.1:Update:Test/.wpa_supplicant.new/wpa_supplicant.changes 2012-02-20 18:14:32.000000000 +0100 @@ -1,0 +2,7 @@ +Mon Feb 20 08:43:29 UTC 2012 - [email protected] + +- Add wpa_supplicant-no-NULL-to-dbus_message_new_error.patch to + fix crash on receiving a malformed probe response from an AP. + (bnc#742937) + +------------------------------------------------------------------- New: ---- wpa_supplicant-no-NULL-to-dbus_message_new_error.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wpa_supplicant.spec ++++++ --- /var/tmp/diff_new_pack.ZeznXN/_old 2012-02-20 18:14:32.000000000 +0100 +++ /var/tmp/diff_new_pack.ZeznXN/_new 2012-02-20 18:14:32.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package wpa_supplicant # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -49,6 +49,8 @@ Patch5: wpa_supplicant-dbus-events.patch # PATCH-FIX-UPSTREAM wpa-supplicant-ca-cert-dbus-signal.patch bnc#574266 [email protected] -- Emit a D-Bus signal when receiving the certificate probe result Patch6: wpa-supplicant-ca-cert-dbus-signal.patch +# PATCH-FIX-UPSTREAM wpa_supplicant-no-NULL-to-dbus_message_new_error.patch bnc#742937 [email protected] -- Don't send NULL to dbus_message_new_error +Patch7: wpa_supplicant-no-NULL-to-dbus_message_new_error.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: logrotate @@ -88,6 +90,7 @@ %patch4 -p0 %patch5 -p1 %patch6 -p1 +%patch7 -p1 %build cd wpa_supplicant ++++++ wpa_supplicant-no-NULL-to-dbus_message_new_error.patch ++++++ commit 8ee69e06336d65b15364f4db82d91775d0fe47c6 Author: Paul Stewart <[email protected]> Date: Sat Oct 9 17:29:51 2010 +0300 dbus_new_handlers: Don't send NULL to dbus_message_new_error The new DBus API helper function wpas_dbus_error_unknown_error function can be called as a result of a failure within internal getter calls, which will call this function with a NULL message parameter. However, dbus_message_new_error looks very unkindly (i.e, abort()) on a NULL message, so in this case, we should not call it. I've observed this course of events during a call to wpas_dbus_getter_bss_wpa with a faileld parse of the IE parameter. We got here through a call to fill_dict_with_properties which explicitly calls getters with a NULL message parameter. Judging from the way it is called, this could easily occur if an AP sends out a malformed (or mis-received) probe response. I usually run into this problem while driving through San Francisco, so I'm exposed to any number of base stations along this path. diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c index 73f4e44..0ad51a0 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.c +++ b/wpa_supplicant/dbus/dbus_new_handlers.c @@ -117,6 +117,20 @@ static char * wpas_dbus_new_decompose_object_path(const char *path, DBusMessage * wpas_dbus_error_unknown_error(DBusMessage *message, const char *arg) { + /* + * This function can be called as a result of a failure + * within internal getter calls, which will call this function + * with a NULL message parameter. However, dbus_message_new_error + * looks very unkindly (i.e, abort()) on a NULL message, so + * in this case, we should not call it. + */ + if (message == NULL) { + wpa_printf(MSG_INFO, "dbus: wpas_dbus_error_unknown_error " + "called with NULL message (arg=%s)", + arg ? arg : "N/A"); + return NULL; + } + return dbus_message_new_error(message, WPAS_DBUS_ERROR_UNKNOWN_ERROR, arg); } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
