Re: [PATCH] dvb: fix potential format string leak

From: Michael Krufky
Date: Mon Sep 30 2013 - 12:20:53 EST


On Mon, Sep 16, 2013 at 7:48 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> On Mon, 2013-09-16 at 16:37 -0700, Kees Cook wrote:
>> Make sure that a format string cannot accidentally leak into the printk
>> buffer.
> []
>> diff --git a/drivers/media/dvb-frontends/dib9000.c b/drivers/media/dvb-frontends/dib9000.c
> []
>> @@ -649,7 +649,7 @@ static int dib9000_risc_debug_buf(struct dib9000_state *state, u16 * data, u8 si
>> b[2 * (size - 2) - 1] = '\0'; /* Bullet proof the buffer */
>> if (*b == '~') {
>> b++;
>> - dprintk(b);
>> + dprintk("%s", b);
>> } else
>> dprintk("RISC%d: %d.%04d %s", state->fe_id, ts / 10000, ts % 10000, *b ? b : "<emtpy>");
>> return 1;
>
> This looks odd.
>
> Perhaps this should be:
>
> if (*b == '~')
> b++;
> dprintk("etc...);
>
> It'd be nice to fix the <empty> typo too.

This *does* look odd, I agree. Meanwhile, I do believe this patch
leaves things better than before. I'm going to merge Kees' patch for
now, but it would be nice to see a better cleanup for that code block.

-Mike Krufky
--
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/