Re: [PATCH] thinkpad_acpi: fix: use scnprintf instead of snprintf.

From: Hans de Goede
Date: Wed Jan 06 2021 - 04:16:14 EST


Hi,

On 1/6/21 10:01 AM, Joe Perches wrote:
> On Wed, 2021-01-06 at 14:36 +0800, YANG LI wrote:
>> The snprintf() function returns the number of characters which would
>> have been printed if there were enough space, but the scnprintf()
>> returns the number of characters which were actually printed. If the
>> buffer is not large enough, then using snprintf() would result in a
>> read overflow and an information leak. This error was found with the
>> help of coccicheck.
>
> In all cases, the buffer _is_ large enough.
>
> tmpi is length 5 and ok.
> include/sound/core.h: char shortname[32]; /* short name of this soundcard */
> include/sound/core.h: char longname[80]; /* name of this soundcard */
> include/sound/core.h: char mixername[80]; /* mixer name */
>
> _show function lengths are OK for all the uses with PAGE_SIZE.
> And it's probably better to use sysfs_emit for all the _show functions

Yes, please send a v2 with the following changes:

1. Use sysfs_emit in all the sysfs read functions
2. Do not replace snprintf with scnprintf when the return value is not used, that is just needless churn
3. Update the commit message to reflect 1.

Regards,

Hans