[1/2] driver_nl80211: Warn about interface name truncations

Message ID 1534960052-14229-1-git-send-email-andrei.otcheretianski@intel.com
State Accepted
Headers show
Series
  • [1/2] driver_nl80211: Warn about interface name truncations
Related show

Commit Message

Otcheretianski, Andrei Aug. 22, 2018, 5:47 p.m.
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         |  9 ++++++++-
 src/drivers/driver_nl80211_monitor.c | 11 ++++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

Comments

Jouni Malinen Oct. 16, 2018, 3:37 p.m. | #1
Thanks, both patches applied.

Patch

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 16bae49..b2dfc73 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -6522,8 +6522,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);
 
diff --git a/src/drivers/driver_nl80211_monitor.c b/src/drivers/driver_nl80211_monitor.c
index 9376d11..303af3a 100644
--- a/src/drivers/driver_nl80211_monitor.c
+++ b/src/drivers/driver_nl80211_monitor.c
@@ -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 = 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';