diff --git a/lib/parser.c b/lib/parser.c index 618c36ec8efe35278226dd6d8e8b99ead40936f0..dd70e5e6c9e2fa7178b2b338cbd73671339b48d4 100644 --- a/lib/parser.c +++ b/lib/parser.c @@ -131,13 +131,10 @@ static int match_number(substring_t *s, int *result, int base) char *buf; int ret; long val; - size_t len = s->to - s->from; - buf = kmalloc(len + 1, GFP_KERNEL); + buf = match_strdup(s); if (!buf) return -ENOMEM; - memcpy(buf, s->from, len); - buf[len] = '\0'; ret = 0; val = simple_strtol(buf, &endp, base);