Fix null pointer exception due to no device mac address

When legacy clients connect to P2P GO, there won't be a
P2P device address in AP-STA-CONNECTED/AP-STA-DISCONNECTED event.
So fill the p2p device address in AP-STA-CONNECTED and AP-STA-DISCONNECTED
events to framework as {0, 0, 0, 0, 0, 0};

Bug: 310969135
Bug: 291202830
Test: Setup P2P auto GO
      Connect from a legacy STA to GO
Change-Id: I10e5fb023294d65318ab74de6546eb736dd72258
diff --git a/wpa_supplicant/aidl/aidl_manager.cpp b/wpa_supplicant/aidl/aidl_manager.cpp
index add0ef7..e760a71 100644
--- a/wpa_supplicant/aidl/aidl_manager.cpp
+++ b/wpa_supplicant/aidl/aidl_manager.cpp
@@ -1620,8 +1620,10 @@
 	P2pPeerClientJoinedEventParams params;
 	params.groupInterfaceName = misc_utils::charBufToString(wpa_group_s->ifname);
 	params.clientInterfaceAddress = macAddrToArray(sta);
-	params.clientDeviceAddress = macAddrToArray(p2p_dev_addr);
+	params.clientDeviceAddress = p2p_dev_addr ?
+			macAddrToArray(p2p_dev_addr) : macAddrToArray(kZeroBssid.data());
 	params.clientIpAddress = aidl_ip;
+
 	callWithEachP2pIfaceCallback(
 		misc_utils::charBufToString(wpa_s->ifname),
 		std::bind(
@@ -1641,7 +1643,9 @@
 	P2pPeerClientDisconnectedEventParams params;
 	params.groupInterfaceName = misc_utils::charBufToString(wpa_group_s->ifname);
 	params.clientInterfaceAddress = macAddrToArray(sta);
-	params.clientDeviceAddress = macAddrToArray(p2p_dev_addr);
+	params.clientDeviceAddress = p2p_dev_addr ?
+			macAddrToArray(p2p_dev_addr) : macAddrToArray(kZeroBssid.data());
+
 	callWithEachP2pIfaceCallback(
 		misc_utils::charBufToString(wpa_s->ifname),
 		std::bind(