projects
/
project
/
iwinfo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nl80211: fix possible fd leak in nl80211_hostapd_hup()
[project/iwinfo.git]
/
iwinfo_utils.c
diff --git
a/iwinfo_utils.c
b/iwinfo_utils.c
index
b313ea2
..
3b993d1
100644
(file)
--- a/
iwinfo_utils.c
+++ b/
iwinfo_utils.c
@@
-177,13
+177,14
@@
int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
FILE *mtd;
uint16_t *bc;
FILE *mtd;
uint16_t *bc;
- int fd, len, off;
+ int fd, off;
+ unsigned int len;
char buf[128];
if (!(mtd = fopen("/proc/mtd", "r")))
return -1;
char buf[128];
if (!(mtd = fopen("/proc/mtd", "r")))
return -1;
- while (fgets(buf, sizeof(buf), mtd)
> 0
)
+ while (fgets(buf, sizeof(buf), mtd)
!= NULL
)
{
if (fscanf(mtd, "mtd%d: %x %*x %127s", &off, &len, buf) < 3 ||
(strcmp(buf, "\"boardconfig\"") && strcmp(buf, "\"EEPROM\"") &&
{
if (fscanf(mtd, "mtd%d: %x %*x %127s", &off, &len, buf) < 3 ||
(strcmp(buf, "\"boardconfig\"") && strcmp(buf, "\"EEPROM\"") &&
@@
-246,7
+247,7
@@
int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
id->subsystem_vendor_id = 0x1814;
/* device */
id->subsystem_vendor_id = 0x1814;
/* device */
- if (
bc[off] & 0xf0
== 0x30)
+ if (
(bc[off] & 0xf0)
== 0x30)
id->device_id = (bc[off] >> 8) | (bc[off] & 0x00ff) << 8;
else
id->device_id = bc[off];
id->device_id = (bc[off] >> 8) | (bc[off] & 0x00ff) << 8;
else
id->device_id = bc[off];
@@
-372,6
+373,7
@@
struct uci_section *iwinfo_uci_get_radio(const char *name, const char *type)
struct uci_ptr ptr = {
.package = "wireless",
.section = name,
struct uci_ptr ptr = {
.package = "wireless",
.section = name,
+ .flags = (name && *name == '@') ? UCI_LOOKUP_EXTENDED : 0,
};
const char *opt;
};
const char *opt;
@@
-381,11
+383,7
@@
struct uci_section *iwinfo_uci_get_radio(const char *name, const char *type)
return NULL;
}
return NULL;
}
- memset(&ptr, 0, sizeof(ptr));
- ptr.package = "wireless";
- ptr.section = name;
-
- if (uci_lookup_ptr(uci_ctx, &ptr, NULL, false))
+ if (uci_lookup_ptr(uci_ctx, &ptr, NULL, true))
return NULL;
if (!ptr.s || strcmp(ptr.s->type, "wifi-device") != 0)
return NULL;
if (!ptr.s || strcmp(ptr.s->type, "wifi-device") != 0)