wpa_supplicant: Remove snprintf call from interface= extension

BUG: b/6826116

Change-Id: I35023ce94152a402da94c34083de8ea1387cc758
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c
index b4af793..301156e 100644
--- a/wpa_supplicant/ctrl_iface_unix.c
+++ b/wpa_supplicant/ctrl_iface_unix.c
@@ -165,33 +165,26 @@
 			reply_len = 2;
 	} else {
 #if defined(CONFIG_P2P) && defined(ANDROID_P2P)
-		char *ifname = NULL, *arg;
-		char cmd[256];
-		/* Skip the command name */
-		arg = os_strchr(buf, ' ');
-		if (arg) {
-			*arg++ = '\0';
-			os_strncpy(cmd, buf, sizeof(cmd));
-			/* Now search for interface= */
-			if (os_strncmp(arg, "interface=", 10) == 0) {
-				ifname = arg + 10;
-				arg = os_strchr(ifname, ' ');
-				if (arg)
-					*arg++ = '\0';
-				wpa_printf(MSG_DEBUG, "Found interface= in the arg %s ifname %s", arg, ifname);
-				for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
-					if (os_strcmp(wpa_s->ifname, ifname) == 0)
-						break;
-				}
-				if (wpa_s == NULL) {
-					wpa_printf(MSG_ERROR, "P2P: interface=%s does not exist", ifname);
-					wpa_s = eloop_ctx;
-				}
+		char *ifname, *ifend;
+
+		ifname = os_strstr(buf, "interface=");
+		if (ifname != NULL) {
+			ifend = os_strchr(ifname + 10, ' ');
+			if (ifend != NULL)
+				*ifend++ = '\0';
+			else
+				ifend = "";
+			wpa_printf(MSG_DEBUG, "Found %s", ifname);
+			for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
+				if (os_strcmp(wpa_s->ifname, ifname + 10) == 0)
+					break;
 			}
-			if (arg)
-				os_snprintf(buf, sizeof(buf), "%s %s", cmd, arg);
+			if (wpa_s == NULL) {
+				wpa_printf(MSG_ERROR, "P2P: %s does not exist", ifname);
+				wpa_s = eloop_ctx;
+			}
+			os_memmove(ifname, ifend, strlen(ifend) + 1);
 		}
-		wpa_printf(MSG_DEBUG, "wpa_s %p cmd %s", wpa_s, buf);
 #endif /* defined CONFIG_P2P && defined ANDROID_P2P */
 		reply = wpa_supplicant_ctrl_iface_process(wpa_s, buf,
 							  &reply_len);