static int do_set(nvram_handle_t *nvram, const char *pair)
{
char *val = strstr(pair, "=");
- char var[strlen(pair)];
+ char *var;
int stat = 1;
- if( val != NULL )
- {
- memset(var, 0, sizeof(var));
- strncpy(var, pair, (int)(val-pair));
- stat = nvram_set(nvram, var, (char *)(val + 1));
+ if (val) {
+ var = strndup(pair, val - pair);
+ if (var)
+ stat = nvram_set(nvram, var, (char *)(val + 1));
+ free(var);
}
return stat;
sprintf(dev, "/dev/mtdblock%d", i);
if( stat(dev, &s) > -1 && (s.st_mode & S_IFBLK) )
{
- path = malloc(strlen(dev) + 1);
- if(path)
- {
- strncpy(path, dev, strlen(dev)+1);
+ path = strdup(dev);
+ if (path)
break;
- }
}
}
}