Re: [Cocci] [PATCH] usb: atm: don't use snprintf() for sysfs attrs

From: Kees Cook
Date: Fri Aug 28 2020 - 03:58:44 EST


On Thu, Aug 27, 2020 at 09:12:06PM -0700, Joe Perches wrote:
> Perhaps something like the below with a sample conversion
> that uses single and multiple sysfs_emit uses.

On quick review, I like it. :)

> [...]
> +int sysfs_emit(char *buf, char *pos, const char *fmt, ...)
> +{
> + int len;
> + va_list args;
> +
> + WARN(pos < buf, "pos < buf\n");
> + WARN(pos - buf >= PAGE_SIZE, "pos >= PAGE_SIZE (%tu > %lu)\n",
> + pos - buf, PAGE_SIZE);
> + if (pos < buf || pos - buf >= PAGE_SIZE)
> + return 0;

This can be:

if (WARN(pos < buf, "pos < buf\n") ||
WARN(pos - buf >= PAGE_SIZE, "pos >= PAGE_SIZE (%tu > %lu)\n",
pos - buf, PAGE_SIZE))
return 0;

--
Kees Cook