#17394: iwinfo wifi scan bug
----------------------+-----------------------------------
 Reporter:  xzm2@…    |      Owner:  developers
     Type:  defect    |     Status:  new
 Priority:  normal    |  Milestone:  Barrier Breaker 14.07
Component:  packages  |    Version:  Trunk
 Keywords:  iwinfo    |
----------------------+-----------------------------------
 OpenWrt Version: BARRIER BREAKER (14.07, r41988)
 root@OpenWrt:~# iwinfo radio0 scan
 Cell 01 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 02 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 03 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 04 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 05 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 06 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 07 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 08 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 09 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 10 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 11 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 12 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 13 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 14 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 15 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 16 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 17 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 18 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 19 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none

 Cell 20 - Address: 00:00:00:00:00:00
           ESSID: unknown
           Mode: Unknown  Channel: unknown
           Signal: -256 dBm  Quality: 0/0
           Encryption: none


 #############################################
 Bug Description:
 ./package/network/utils/iwinfo/src/iwinfo_cli.c
 static void print_scanlist(const struct iwinfo_ops *iw, const char
 *ifname)
 {
         int i, x, len = 0; //len must be initial to 0
         char buf[IWINFO_BUFSIZE];
         struct iwinfo_scanlist_entry *e;

         if (iw->scanlist(ifname, buf, &len))
         {
                 printf("Scanning not possible\n\n");
                 return;
         }
         else if (len <= 0)
         {
                 printf("No scan results\n\n");
                 return;
         }


 ./package/network/utils/iwinfo/src/iwinfo_nl80211.c
 static char * nl80211_phy2ifname(const char *ifname)
 {
         int fd, ifidx = -1, cifidx = -1, phyidx = -1;
         char buffer[64];
         static char nif[IFNAMSIZ] = { 0 }; //static var

         DIR *d;
         struct dirent *e;

         if (!ifname)
                 return NULL;
         else if (!strncmp(ifname, "phy", 3))
                 phyidx = atoi(&ifname[3]);
         else if (!strncmp(ifname, "radio", 5))
                 phyidx = atoi(&ifname[5]);

         memset(nif, 0, sizeof(nif)); //bug here, ifname may pointer to nif

 ####################################################
 Code test, modify nl80211_phy2ifname function, print ifname:
 static char * nl80211_phy2ifname(const char *ifname)
 {
         int fd, ifidx = -1, cifidx = -1, phyidx = -1;
         char buffer[64];
         static char nif[IFNAMSIZ] = { 0 };

         DIR *d;
         struct dirent *e;

         if (!ifname)
                 return NULL;
         else if (!strncmp(ifname, "phy", 3))
                 phyidx = atoi(&ifname[3]);
         else if (!strncmp(ifname, "radio", 5))
                 phyidx = atoi(&ifname[5]);

         printf("1. ifname=[%p:%s] nif=[%p:%s]\n", ifname, ifname, nif,
 nif) ;
         memset(nif, 0, sizeof(nif));
         printf("2. ifname=[%p:%s] nif=[%p:%s]\n", ifname, ifname, nif,
 nif) ;

 ####################################################
 root@OpenWrt:/tmp# ./iwinfo radio0 scan
 1. ifname=[0x7fbdef05:radio0] nif=[0x7769b770:]
 2. ifname=[0x7fbdef05:radio0] nif=[0x7769b770:]
 1. ifname=[0x7769b770:wlan0] nif=[0x7769b770:wlan0]
 2. ifname=[0x7769b770:] nif=[0x7769b770:]
 No scan results

--
Ticket URL: <https://dev.openwrt.org/ticket/17394>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets

Reply via email to