Re: [PATCH 01/42] coccinelle: device_attr_show.cocci: update description and warning message

From: Julia Lawall
Date: Thu Jan 18 2024 - 15:27:11 EST




On Tue, 16 Jan 2024, Li Zhijian wrote:

> Update them according to latest Documentation/filesystems/sysfs.rst.
>
> CC: Julia Lawall <Julia.Lawall@xxxxxxxx>
> CC: Nicolas Palix <nicolas.palix@xxxxxxx>
> CC: cocci@xxxxxxxx
> Signed-off-by: Li Zhijian <lizhijian@xxxxxxxxxxx>
> ---
> scripts/coccinelle/api/device_attr_show.cocci | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/scripts/coccinelle/api/device_attr_show.cocci b/scripts/coccinelle/api/device_attr_show.cocci
> index a28dc061653a..a621e9610479 100644
> --- a/scripts/coccinelle/api/device_attr_show.cocci
> +++ b/scripts/coccinelle/api/device_attr_show.cocci
> @@ -1,10 +1,8 @@
> // SPDX-License-Identifier: GPL-2.0-only
> ///
> /// From Documentation/filesystems/sysfs.rst:
> -/// show() must not use snprintf() when formatting the value to be
> -/// returned to user space. If you can guarantee that an overflow
> -/// will never happen you can use sprintf() otherwise you must use
> -/// scnprintf().
> +/// show() should only use sysfs_emit() or sysfs_emit_at() when formatting
> +/// the value to be returned to user space.
> ///
> // Confidence: High
> // Copyright: (C) 2020 Denis Efremov ISPRAS
> @@ -46,10 +44,10 @@ ssize_t show(struct device *dev, struct device_attribute *attr, char *buf)
> p << r.p;
> @@
>
> -coccilib.report.print_report(p[0], "WARNING: use scnprintf or sprintf")
> +coccilib.report.print_report(p[0], "WARNING: please use sysfs_emit")
>
> @script: python depends on org@
> p << r.p;
> @@
>
> -coccilib.org.print_todo(p[0], "WARNING: use scnprintf or sprintf")
> +coccilib.org.print_todo(p[0], "WARNING: please use sysfs_emit")

Thanks for the suggestion, but it's not really consistent, because the
patch rule still generates a call to scnprintf. Would it be possible to
fix that up? Or should it be removed?

thanks,
julia