P2P: Use specific go_bssid field instead of generic bssid field

The bssid field stores the value of the P2P Device Address, not the P2P
interface address, but the interface address is the one that is used for
the BSSID of the resulting GO (see
http://lists.infradead.org/pipermail/hostap/2023-February/041392.html
for details).

This was fixed in the patch that was eventually upstreamed. Align it
here.

Bug: 233925359
Test: set up GO on a device with P2P test app, discovered GO on client
device with wifi picker, switched to P2P test app on client device and
joined the group, looked at logs to verify that scan retry mechanism
works as expected (only GO frequency scanned)
Test: persistent connection using WiFi Direct in Settings menu - connect, disconnect, reconnect (no dialog box).

Change-Id: I5aa732c6f72d6e287896d7fc4e0d5b08a1035627
diff --git a/wpa_supplicant/bss.c b/wpa_supplicant/bss.c
index 0f986bb..1a43ee2 100644
--- a/wpa_supplicant/bss.c
+++ b/wpa_supplicant/bss.c
@@ -249,11 +249,11 @@
 			     const u8 *ssid, size_t ssid_len)
 {
 	struct wpa_bss *bss;
-	if (!wpa_supplicant_filter_bssid_match(wpa_s, bssid))
+
+	if (bssid && !wpa_supplicant_filter_bssid_match(wpa_s, bssid))
 		return NULL;
 	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
-		if ((!bssid ||
-		     os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0) &&
+		if ((!bssid || os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0) &&
 		    bss->ssid_len == ssid_len &&
 		    os_memcmp(bss->ssid, ssid, ssid_len) == 0)
 			return bss;