Re: [PATCH 3/3] exterminate strtok - usr/gen_init_cpio.c
From: Jesper Juhl
Date: Wed Aug 24 2005 - 15:32:20 EST
On 8/24/05, Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
> Brian Gerst wrote:
> > Jesper Juhl wrote:
> >
> >> Convert strtok() use to strsep() in usr/gen_init_cpio.c
> >>
> >> I've compile tested this patch and it compiles fine.
> >> I build a 2.6.13-rc6-mm2 kernel with the patch applied without
> >> problems, and
> >> the resulting kernel boots and runs just fine (using it right now).
> >> But despite this basic testing it would still be nice if someone would
> >> double-check that I haven't made some silly mistake that would break
> >> some other setup than mine.
> >>
> >>
> >> Signed-off-by: Jesper Juhl <jesper.juhl@xxxxxxxxx>
> >> ---
> >>
> >> gen_init_cpio.c | 31 ++++++++++++++++++++++---------
> >> 1 files changed, 22 insertions(+), 9 deletions(-)
> >>
> >> --- linux-2.6.13-rc6-mm2-orig/usr/gen_init_cpio.c 2005-06-17
> >> 21:48:29.000000000 +0200
> >> +++ linux-2.6.13-rc6-mm2/usr/gen_init_cpio.c 2005-08-24
> >> 18:58:21.000000000 +0200
> >> @@ -438,7 +438,7 @@ struct file_handler file_handler_table[]
> >> int main (int argc, char *argv[])
> >> {
> >> FILE *cpio_list;
> >> - char line[LINE_SIZE];
> >> + char *line, *ln;
> >> char *args, *type;
> >> int ec = 0;
> >> int line_nr = 0;
> >> @@ -455,7 +455,14 @@ int main (int argc, char *argv[])
> >> exit(1);
> >> }
> >>
> >> - while (fgets(line, LINE_SIZE, cpio_list)) {
> >> + ln = malloc(LINE_SIZE);
> >
> >
> > Why change to malloc()? This is a userspace program. It doesn't have
> > the kernel stack constraints.
>
> Good catch, agreed.
>
> I prefer the code as-is, with LINE_SIZE stack allocations.
>
The reason I did it like that was that strsep takes offense at
strsep(&line, ...) when line is allocated on the stack. So I just
changed it around to being malloc()'ed and things were good.
--
Jesper Juhl <jesper.juhl@xxxxxxxxx>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/