summaryrefslogtreecommitdiff
path: root/iwinfo_nl80211.c
diff options
context:
space:
mode:
Diffstat (limited to 'iwinfo_nl80211.c')
-rw-r--r--iwinfo_nl80211.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/iwinfo_nl80211.c b/iwinfo_nl80211.c
index ef0dffa..c4b0ee2 100644
--- a/iwinfo_nl80211.c
+++ b/iwinfo_nl80211.c
@@ -298,12 +298,18 @@ static int nl80211_phy_idx_from_path(const char *path)
char buf[128];
struct dirent *e;
const char *cur_path;
+ int cur_path_len;
+ int path_len;
int idx = -1;
DIR *d;
if (!path)
return -1;
+ path_len = strlen(path);
+ if (!path_len)
+ return -1;
+
d = opendir("/sys/class/ieee80211");
if (!d)
return -1;
@@ -313,7 +319,11 @@ static int nl80211_phy_idx_from_path(const char *path)
if (!cur_path)
continue;
- if (strcmp(cur_path, path) != 0)
+ cur_path_len = strlen(cur_path);
+ if (cur_path_len < path_len)
+ continue;
+
+ if (strcmp(cur_path + cur_path_len - path_len, path) != 0)
continue;
snprintf(buf, sizeof(buf), "/sys/class/ieee80211/%s/index", e->d_name);