<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=ks_c_5601-1987"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"¸¼Àº °íµñ";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
@font-face
        {font-family:"\@¸¼Àº °íµñ";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-autospace:none;
        word-break:break-hangul;
        font-size:10.0pt;
        font-family:"¸¼Àº °íµñ";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"¸¼Àº °íµñ";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"¸¼Àº °íµñ";}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:3.0cm 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=KO link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi, all<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>On an embedded ARM system(with Kernel is 3.10) I have issues(segmentation fault) to remove P2P group interface. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>The test sequences are as follows:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>1. Run the wpa_supplicant daemon:&nbsp; wpa_supplicant -Dnl80211 -iwlan0 -c p2p.conf -u -dd<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>2. Create the P2P GO : wpa_cli -iwlan0 p2p_group_add <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>3. Remove P2P group interface : wpa_cli -iwlan0 p2p_group_remove p2p-wlan0-0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Running wpa_supplicant I got:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>===============================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: fi.w1.wpa_supplicant1.Interface.P2PDevice.Disconnect (/fi/w1/wpa_supplicant1/Interfaces/3)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>wlan0: P2P-GROUP-REMOVED p2p-wlan0-0 GO reason=REQUESTED<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: Unregister group object '/fi/w1/wpa_supplicant1/Interfaces/3/Groups/QX'<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>P2P: Remove group interface p2p-wlan0-0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Removing interface p2p-wlan0-0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Request to deauthenticate - bssid=02:90:4c:c5:92:38 pending_bssid=00:00:00:00:00:00 reason=3 state=COMPLETED<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>wpa_driver_nl80211_disconnect(reason_code=3)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: nl80211: MLME command failed: reason=3 ret=-95 (Operation not supported)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Event DEAUTH (12) received<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Deauthentication notification<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0:&nbsp; * reason 3 (locally generated)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Deauthentication frame IE(s) - hexdump(len=0): [NULL]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Ignore deauth event in AP mode<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: No keys have been configured - skip key clearing<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Flushing old station entries<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Deauthenticate all stations<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>¡¦<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: State: COMPLETED -&gt; DISCONNECTED<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>wpa_driver_nl80211_set_operstate: operstate 1-&gt;0 (DORMANT)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>netlink: Operstate: linkmode=-1, operstate=5<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: External notification - portEnabled=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: Supplicant port status: Unauthorized<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: External notification - portValid=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: Supplicant port status: Unauthorized<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: External notification - EAP success=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>EAPOL: Supplicant port status: Unauthorized<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: No keys have been configured - skip key clearing<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: Unregister network object '/fi/w1/wpa_supplicant1/Interfaces/3/Networks/0'<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: wpa_dbus_unregister_object_per_iface: Could not obtain object's private data: /fi/w1/wpa_supplicant1/Interfaces/3/Networks/0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Segmentation fault<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>============================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>I debugged it and I found the problem.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>It is to unregister Network's path which is not object path.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>I can see the obect path related P2P after creating the P2P GO<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>- /fi/w1/wpa_supplicant1/Interfaces/3/<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>It is the object path related to p2p-wlan0-0 and /fi/w1/wpa_supplicant1/Interfaces/3/Networks/0 is not object path. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>In wpa_dbus_unregister_object_per_iface() in dbus_new_helper.c,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>===============================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>if (!dbus_connection_unregister_object_path(con, path))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; Segmentation fault point<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp; return -1;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>================================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>Why do '/fi/w1/wpa_supplicant1/Interfaces/3/Networks/0' unregister ? <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>As I mention before, it is not object path.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>In x86 system(ubuntu 12.04), there are not segmentation fault and it works fine however I can see unknown message which is not created by wpa_supplicant as bellow:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>=================================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: Unregister network object '/fi/w1/wpa_supplicant1/Interfaces/3/Networks/0'<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>dbus: wpa_dbus_unregister_object_per_iface: Could not obtain object's private data: /fi/w1/wpa_supplicant1/Interfaces/3/Networks/0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Attempted to unregister path (path[0] = fi path[1] = w1) which isn't registered&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; unknown message<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Cancelling scan request<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>p2p-wlan0-0: Cancelling authentication timeout<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>====================================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>I think if the value of path is not object path, it is not necessary to do dbus_connection_unregister_object_path(con, path).<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I changed the source code and both system work fine.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>==================================================================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>diff -urN A/wpa_supplicant/dbus/dbus_new_helpers.c B/wpa_supplicant/dbus/dbus_new_helpers.c<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>--- A/wpa_supplicant/dbus/dbus_new_helpers.c&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>+++ B/wpa_supplicant/dbus/dbus_new_helpers.c&nbsp; <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>@@ -590,6 +590,7 @@<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!obj_desc) {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wpa_printf(MSG_ERROR, &quot;dbus: %s: Could not obtain object's &quot;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;private data: %s&quot;, __func__, path);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eloop_cancel_timeout(flush_object_timeout_handler, con,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj_desc); <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>==================================================================================================================================<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I don't know exactly why dbus_connection_unregister_object_path(con, path) generates segmentation fault in my ARM system.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>However, I think if path is not object path, we don't need dbus_connection_unregister_object_path(con, path).<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US>Is it a bug or do I make a mistake?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>It would be great if you can take a look at the patch and tell me what you think about it.<o:p></o:p></span></p><p class=MsoNormal><b><span lang=EN-US><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal><span lang=EN-US>BTW, I attached the patch file.<o:p></o:p></span></p><p class=MsoNormal><b><span lang=EN-US><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal><span lang=EN-US>Best Regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Sungho<o:p></o:p></span></p></div></body></html>