On Tue, Sep 17, 2013 at 6:06 AM, Tetsuo Handa <penguin-ker...@i-love.sakura.ne.jp> wrote: > Kees Cook wrote: >> On Mon, Sep 16, 2013 at 1:09 AM, Geert Uytterhoeven >> <ge...@linux-m68k.org> wrote: >> > On Mon, Sep 16, 2013 at 9:43 AM, Kees Cook <keesc...@chromium.org> wrote: >> >> All users of %n are calculating padding size when using seq_file, so >> >> instead use the new last_len member for discovering the length of the >> >> written strings. >> > >> > Would it make sense to provide a seq_pad(...) function instead, to avoid >> > exposing more seq_file internals to its callers? >> >> We'd still need to track how much to pad. > > If we add "size_t pad_until;" to "struct seq_file", we can do > > void seq_setwidth(struct seq_file *m, size_t size) > { > m->pad_until = m->count + size; > } > > void seq_pad(struct seq_file *m, char c) > { > int size = m->pad_until - m->count; > if (size > 0) > seq_printf(m, "%*s", size, ""); > if (c) > seq_putc(m, c); > } > > and use like > > seq_setwidth(m, 21); > seq_printf(m, "%s%d", con->name, con->index); > seq_pad(m, '\n');
Ooh, I like this a lot! Much cleaner. -Kees -- Kees Cook Chrome OS Security -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/