|
@@ -429,7 +429,8 @@ static inline void kill_final_newline(char *str)
|
|
|
|
|
|
static int block2mtd_setup(const char *val, struct kernel_param *kp)
|
|
static int block2mtd_setup(const char *val, struct kernel_param *kp)
|
|
{
|
|
{
|
|
- char buf[80+12], *str=buf; /* 80 for device, 12 for erase size */
|
|
|
|
|
|
+ char buf[80+12]; /* 80 for device, 12 for erase size */
|
|
|
|
+ char *str = buf;
|
|
char *token[2];
|
|
char *token[2];
|
|
char *name;
|
|
char *name;
|
|
size_t erase_size = PAGE_SIZE;
|
|
size_t erase_size = PAGE_SIZE;
|
|
@@ -441,7 +442,7 @@ static int block2mtd_setup(const char *val, struct kernel_param *kp)
|
|
strcpy(str, val);
|
|
strcpy(str, val);
|
|
kill_final_newline(str);
|
|
kill_final_newline(str);
|
|
|
|
|
|
- for (i=0; i<2; i++)
|
|
|
|
|
|
+ for (i = 0; i < 2; i++)
|
|
token[i] = strsep(&str, ",");
|
|
token[i] = strsep(&str, ",");
|
|
|
|
|
|
if (str)
|
|
if (str)
|
|
@@ -460,8 +461,10 @@ static int block2mtd_setup(const char *val, struct kernel_param *kp)
|
|
|
|
|
|
if (token[1]) {
|
|
if (token[1]) {
|
|
ret = parse_num(&erase_size, token[1]);
|
|
ret = parse_num(&erase_size, token[1]);
|
|
- if (ret)
|
|
|
|
|
|
+ if (ret) {
|
|
|
|
+ kfree(name);
|
|
parse_err("illegal erase size");
|
|
parse_err("illegal erase size");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
add_device(name, erase_size);
|
|
add_device(name, erase_size);
|