diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2013-06-06 10:45:48 -0700 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2013-06-06 10:45:48 -0700 |
commit | c15ccf4d05f2196215c9a49fd8dd5a2660dddd2c (patch) | |
tree | 30d956a2b46330dfe605a8df13eb96e079f2c77b /wifi | |
parent | ec0576034bb5c1b0aed1b23120b71f9599d2bb73 (diff) | |
download | hardware_libhardware_legacy-c15ccf4d05f2196215c9a49fd8dd5a2660dddd2c.zip hardware_libhardware_legacy-c15ccf4d05f2196215c9a49fd8dd5a2660dddd2c.tar.gz hardware_libhardware_legacy-c15ccf4d05f2196215c9a49fd8dd5a2660dddd2c.tar.bz2 |
wifi: Skip adding interface prefix if exists
Bug: 9313188
Change-Id: I63784493c84ac4ffcc9810a7798b1c0de1b0f68b
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/wifi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/wifi/wifi.c b/wifi/wifi.c index fca36f8..cbf8303 100644 --- a/wifi/wifi.c +++ b/wifi/wifi.c @@ -860,12 +860,14 @@ int wifi_command(const char *ifname, char *command, size_t commandlen, size_t cmdlen = strlen(command) + 1; size_t iflen = strlen(ifname) + IFNAMELEN + 1; - if (commandlen >= cmdlen + iflen) { - memmove((&command[iflen]), command, cmdlen); - snprintf(command, iflen, "%s%s", IFNAME, ifname); - command[iflen - 1] = ' '; - } else { - ALOGE("CmdBuf is too small (%d) for %s", commandlen, command); + if (strncmp(command, IFNAME, IFNAMELEN) != 0) { + if (commandlen >= cmdlen + iflen) { + memmove((&command[iflen]), command, cmdlen); + snprintf(command, iflen, "%s%s", IFNAME, ifname); + command[iflen - 1] = ' '; + } else { + ALOGE("CmdBuf is too small (%d) for %s", commandlen, command); + } } if (is_primary_interface(ifname)) { return wifi_send_command(PRIMARY, command, reply, reply_len); |