Messages in this thread | | | Date | Mon, 1 Sep 2014 14:53:16 +0300 | Subject | Re: [PATCH v3 1/5] seq_file: provide an analogue of print_hex_dump() | From | Andy Shevchenko <> |
| |
On Mon, Sep 1, 2014 at 2:49 PM, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Hi Andy, > > On Mon, Sep 1, 2014 at 1:33 PM, Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: >>> >> 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. >>> > >>> > I thought about that. We may introduce either new call and make >>> > current one the user of it or change all occurrences. >>> > Nevertheless, currently it will print only one groupsize if there is >>> > enough room for it but for two or more. >>> > Thus, I prefer to keep the behaviour "print until we can". >>> >>> The idea of seq_*() is that it will retry with a bigger bufsize if there's >>> not enough space. >> >> Fair enough. >> >> So, summarize above, the check before hex_dump_to_buffer() should care >> about maximum possible buffer needed for one line. But we have already >> rowsize calculated (we actually can't rely on groupsize in this case). >> >> Do you agree with formula rowsize * 3 + 2 + rowsize + 1? > > That's the _current_ formula. The day hex_dump_to_buffer() is changed, > it will break silently.
Do we have any other option except modify hex_dump_to_buffer() to return an error when buffer is not enough? In this case we require hex_dump_to_buffer() to follow this agreement even if it's changed once.
-- With Best Regards, Andy Shevchenko
| |