X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=lib%2Fparser.c;h=6e89eca5cca00b6fb059bae5135b0ee381a5d5d5;hb=HEAD;hp=fb34977246bb052923d5fad6341c2ba80315fdfe;hpb=eb6b6d7cdd5548fa03a919d14615195600013be2;p=net-next-2.6.git diff --git a/lib/parser.c b/lib/parser.c index fb34977246b..6e89eca5cca 100644 --- a/lib/parser.c +++ b/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)