diff options
author | Laslo Hunhold <dev@frign.de> | 2018-05-19 19:33:04 +0200 |
---|---|---|
committer | Aaron Marcher <me@drkhsh.at> | 2018-05-19 19:44:02 +0200 |
commit | 422cadfd5ffd78ae1b8fdf15734e03bd0333b26e (patch) | |
tree | cf243529272e96e3d65b44afecd08cbb9f4e3005 /components/wifi.c | |
parent | f31b113e7e85bf7057cb88a70d88c5ce9325e208 (diff) |
Implement esnprintf() and make formatted calls more efficient
Within the components, snprintf() was unchecked and had inefficient
calls in some places.
We implement esnprintf() that does all the dirty laundry for us
and use it exclusively now.
Diffstat (limited to 'components/wifi.c')
-rw-r--r-- | components/wifi.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/components/wifi.c b/components/wifi.c index 591f6ad..b3e1723 100644 --- a/components/wifi.c +++ b/components/wifi.c @@ -23,8 +23,11 @@ char status[5]; FILE *fp; - snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface, - "/operstate"); + if (esnprintf(path, sizeof(path), + "/sys/class/net/%s/operstate", + iface) < 0) { + return NULL; + } if (!(fp = fopen(path, "r"))) { warn("fopen '%s':", path); return NULL; @@ -69,7 +72,10 @@ memset(&wreq, 0, sizeof(struct iwreq)); wreq.u.essid.length = IW_ESSID_MAX_SIZE+1; - snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface); + if (esnprintf(wreq.ifr_name, sizeof(wreq.ifr_name), + "%s", iface) < 0) { + return NULL; + } if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); |