wl: only invoke nvram executable if it exists

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2018-07-31 20:09:02 +02:00
parent a51413988c
commit 3c30b17170

View file

@ -18,6 +18,9 @@
* This code is based on the wlc.c utility published by OpenWrt.org .
*/
#include <sys/types.h>
#include <sys/stat.h>
#include "iwinfo.h"
#include "api/broadcom.h"
@ -702,15 +705,19 @@ static int wl_get_txpower_offset(const char *ifname, int *buf)
{
FILE *p;
char off[8];
struct stat s;
*buf = 0;
if ((p = popen("/usr/sbin/nvram get opo", "r")) != NULL)
if (!stat("/usr/sbin/nvram", &s) && (s.st_mode & S_IXUSR))
{
if (fread(off, 1, sizeof(off), p))
*buf = strtoul(off, NULL, 16);
if ((p = popen("/usr/sbin/nvram get opo", "r")) != NULL)
{
if (fread(off, 1, sizeof(off), p))
*buf = strtoul(off, NULL, 16);
pclose(p);
pclose(p);
}
}
return 0;