Messages in this thread | | | Date | Fri, 4 Sep 2015 09:59:13 +0100 | From | Russell King - ARM Linux <> | Subject | Re: [PATCH] clk_register_clkdev: remove format string interface |
| |
On Thu, Sep 03, 2015 at 01:54:07PM -0700, Kees Cook wrote: > Many callers either use NULL or const strings for the third argument of > clk_register_clkdev. For those that do not and use a non-const string, > this is a risk for format strings being accidentally processed (for > example in device names). As this interface is already used as if it > weren't a format string (prints nothing when NULL), and there are zero > users of the format strings, remove the format string interface to make > sure format strings will not leak into the clkdev. > > $ git grep '\bclk_register_clkdev\b' | grep % | wc -l > 0 > > Unfortunately, all the internals expect a va_list even though they treat > a NULL format string as special. To deal with this, we must pass either > (..., "%s", string) or (..., NULL, NULL) so that a the va_list will be > created correctly (passing the name as an argument, not a format string).
A more clearer way to write that would be:
if (dev_id) cl = clkdev_create(hw, con_id, "%s", dev_id); else cl = clkdev_create(hw, con_id, NULL);
then it's obvious what's going on.
-- FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
| |