diff --git a/[refs] b/[refs] index 7e95d1076281..ba4aeeedc9bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea00c30b5b31baa91be29bee966204eccc15e9d3 +refs/heads/master: 5d051decfc27cdf33fbbd2bfca958d0d2c903569 diff --git a/trunk/lib/parser.c b/trunk/lib/parser.c index fb34977246bb..6e89eca5cca0 100644 --- a/trunk/lib/parser.c +++ b/trunk/lib/parser.c @@ -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)