FILE *mtd;
uint16_t *bc;
- int fd, len, off;
+ int fd;
+ unsigned int len, off;
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 ||
+ if (fscanf(mtd, "mtd%u: %x %*x %127s", &off, &len, buf) < 3 ||
(strcmp(buf, "\"boardconfig\"") && strcmp(buf, "\"EEPROM\"") &&
strcmp(buf, "\"factory\"")))
{
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];
struct uci_ptr ptr = {
.package = "wireless",
.section = name,
+ .flags = (name && *name == '@') ? UCI_LOOKUP_EXTENDED : 0,
};
const char *opt;
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)