|
@@ -128,12 +128,13 @@ static int match_number(substring_t *s, int *result, int base)
|
|
|
char *endp;
|
|
|
char *buf;
|
|
|
int ret;
|
|
|
+ size_t len = s->to - s->from;
|
|
|
|
|
|
- buf = kmalloc(s->to - s->from + 1, GFP_KERNEL);
|
|
|
+ buf = kmalloc(len + 1, GFP_KERNEL);
|
|
|
if (!buf)
|
|
|
return -ENOMEM;
|
|
|
- memcpy(buf, s->from, s->to - s->from);
|
|
|
- buf[s->to - s->from] = '\0';
|
|
|
+ memcpy(buf, s->from, len);
|
|
|
+ buf[len] = '\0';
|
|
|
*result = simple_strtol(buf, &endp, base);
|
|
|
ret = 0;
|
|
|
if (endp == buf)
|