wpa_supplicant(hidl): Invoke onDeviceFound for all cases

For devices that does not expose WFD info, we were ignoring the
onDeviceFound P2P callback. Remove this restriction.

Bug: 36790022
Test: Able to find peers from the settings menu.
Change-Id: Id141d04cf9cfa9f889d2c12888a5d777db4f267f
diff --git a/wpa_supplicant/hidl/hidl.cpp b/wpa_supplicant/hidl/hidl.cpp
index 753c87b..3acc7e2 100644
--- a/wpa_supplicant/hidl/hidl.cpp
+++ b/wpa_supplicant/hidl/hidl.cpp
@@ -370,7 +370,7 @@
     const struct p2p_peer_info *info, const u8 *peer_wfd_device_info,
     u8 peer_wfd_device_info_len)
 {
-	if (!wpa_s || !addr || !info || !peer_wfd_device_info)
+	if (!wpa_s || !addr || !info)
 		return;
 
 	wpa_printf(
diff --git a/wpa_supplicant/hidl/hidl_manager.cpp b/wpa_supplicant/hidl/hidl_manager.cpp
index a6749e8..a2eb101 100644
--- a/wpa_supplicant/hidl/hidl_manager.cpp
+++ b/wpa_supplicant/hidl/hidl_manager.cpp
@@ -1058,17 +1058,24 @@
     const struct p2p_peer_info *info, const u8 *peer_wfd_device_info,
     u8 peer_wfd_device_info_len)
 {
-	if (!wpa_s || !addr || !info || !peer_wfd_device_info)
+	if (!wpa_s || !addr || !info)
 		return;
 
 	if (p2p_iface_object_map_.find(wpa_s->ifname) ==
 	    p2p_iface_object_map_.end())
 		return;
 
-	if (peer_wfd_device_info_len != kWfdDeviceInfoLen) {
-		wpa_printf(
-		    MSG_ERROR, "Unexpected WFD device info len: %d",
-		    peer_wfd_device_info_len);
+	std::array<uint8_t, kWfdDeviceInfoLen> hidl_peer_wfd_device_info{};
+	if (peer_wfd_device_info) {
+		if (peer_wfd_device_info_len != kWfdDeviceInfoLen) {
+			wpa_printf(
+			    MSG_ERROR, "Unexpected WFD device info len: %d",
+			    peer_wfd_device_info_len);
+		} else {
+			os_memcpy(
+			    hidl_peer_wfd_device_info.data(),
+			    peer_wfd_device_info, kWfdDeviceInfoLen);
+		}
 	}
 
 	callWithEachP2pIfaceCallback(
@@ -1077,7 +1084,7 @@
 		&ISupplicantP2pIfaceCallback::onDeviceFound,
 		std::placeholders::_1, addr, info->p2p_device_addr,
 		info->pri_dev_type, info->device_name, info->config_methods,
-		info->dev_capab, info->group_capab, peer_wfd_device_info));
+		info->dev_capab, info->group_capab, hidl_peer_wfd_device_info));
 }
 
 void HidlManager::notifyP2pDeviceLost(