Re: [PATCH v3 1/5] seq_file: provide an analogue of print_hex_dump()
From: Geert Uytterhoeven
Date: Mon Sep 01 2014 - 05:25:55 EST
On Mon, Sep 1, 2014 at 11:09 AM, Andy Shevchenko
> On Mon, 2014-09-01 at 10:58 +0200, Geert Uytterhoeven wrote:
>> On Mon, Sep 1, 2014 at 10:36 AM, Andy Shevchenko
>> <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>> >> ... and extra copying for no good reason. Why not check that we have
>> >> enough space in buffer and generate directly into it? See what e.g.
>> >> seq_escape() is doing...
>> > What about this variant?
>> I think it needs a call to seq_set_overflow() in case the buffer is too small,
>> so the caller will retry with a bigger buffer.
> Yes, in two places it would be useful to do.
Two places? I see only one, just before calling hex_dump_to_buffer.
> But what the condition for "buffer is too small", the same groupsize * 2
> + 1 or you mean something else?
"groupsize * 2 + 1" is not the amount of bytes hex_dump_to_buffer() wants
to write. It's only the size for one word.
You could check if there are at least "32 * 3 + 2 + 32 + 1" bytes (your
old linebuf size) available.
However, to protect against overflows if hex_dump_to_buffer() ever changes,
I think it would be better to let hex_dump_to_buffer() indicate if the
passed buffer was to small (it already checks the passed linebuflen).
Then you can just check for that.
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
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/