]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Warn about interface name truncations
authorAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Wed, 22 Aug 2018 17:47:31 +0000 (20:47 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 16 Oct 2018 09:53:15 +0000 (12:53 +0300)
This is something useful to know and also eliminates format truncation
warnings.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211_monitor.c

index b26894f8316c2dc984d280733618e26691be3aa7..23a657bf0767b32590a163310b2e5fb1f88d3072 100644 (file)
@@ -6580,8 +6580,15 @@ static int i802_set_wds_sta(void *priv, const u8 *addr, int aid, int val,
        struct wpa_driver_nl80211_data *drv = bss->drv;
        char name[IFNAMSIZ + 1];
        union wpa_event_data event;
+       int ret;
+
+       ret = os_snprintf(name, sizeof(name), "%s.sta%d", bss->ifname, aid);
+       if (ret >= (int) sizeof(name))
+               wpa_printf(MSG_WARNING,
+                          "nl80211: WDS interface name was truncated");
+       else if (ret < 0)
+               return ret;
 
-       os_snprintf(name, sizeof(name), "%s.sta%d", bss->ifname, aid);
        if (ifname_wds)
                os_strlcpy(ifname_wds, name, IFNAMSIZ + 1);
 
index 9376d1143800df0d53177402e668a19d8f73afdd..f25cd792464a0805fcb9202c6b5112f9a4cfb595 100644 (file)
@@ -361,8 +361,17 @@ int nl80211_create_monitor_interface(struct wpa_driver_nl80211_data *drv)
                 */
                snprintf(buf, IFNAMSIZ, "mon-%s", drv->first_bss->ifname + 4);
        } else {
+               int ret;
+
                /* Non-P2P interface with AP functionality. */
-               snprintf(buf, IFNAMSIZ, "mon.%s", drv->first_bss->ifname);
+               ret = os_snprintf(buf, IFNAMSIZ, "mon.%s",
+                                 drv->first_bss->ifname);
+               if (ret >= (int) sizeof(buf))
+                       wpa_printf(MSG_DEBUG,
+                                  "nl80211: Monitor interface name has been truncated to %s",
+                                  buf);
+               else if (ret < 0)
+                       return ret;
        }
 
        buf[IFNAMSIZ - 1] = '\0';