On Fri, Aug 28, 2020 at 12:01:34AM +0300, Denis Efremov wrote:
> Just FYI, I've send an addition to the device_attr_show.cocci script[1] to 
> turn
> simple cases of snprintf (e.g. "%i") to sprintf. Looks like many developers 
> would
> like it more than changing snprintf to scnprintf. As for me, I don't like the 
> idea
> of automated altering of the original logic from bounded snprint to unbouded 
> one
> with sprintf.

Agreed. This just makes me cringe. If the API design declares that when
a show() callback starts, buf has been allocated with PAGE_SIZE bytes,
then that's how the logic should proceed, and it should be using
scnprintf...

show(...) {
        size_t remaining = PAGE_SIZE;

        ...
        remaining -= scnprintf(buf, remaining, "fmt", var args ...);
        remaining -= scnprintf(buf, remaining, "fmt", var args ...);
        remaining -= scnprintf(buf, remaining, "fmt", var args ...);

        return PAGE_SIZE - remaining;
}

-- 
Kees Cook
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to