Re: [PATCH] led-class-flash: fix -Wrestrict warning

From: Greg Kroah-Hartman
Date: Mon Sep 27 2021 - 06:22:17 EST


On Mon, Sep 27, 2021 at 12:15:59PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> drivers/leds/led-class-flash.c: In function 'flash_fault_show':
> drivers/leds/led-class-flash.c:210:16: error: 'sprintf' argument 3 overlaps destination object 'buf' [-Werror=restrict]
> 210 | return sprintf(buf, "%s\n", buf);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/leds/led-class-flash.c:187:54: note: destination object referenced by 'restrict'-qualified argument 1 was declared here
> 187 | struct device_attribute *attr, char *buf)
> | ~~~~~~^~~
> cc1: all warnings being treated as errors
> make[5]: *** [scripts/Makefile.build:277: drivers/leds/led-class-flash.o] Error 1
> make[5]: Target '__build' not remade because of errors.
> make[4]: *** [scripts/Makefile.build:540: drivers/leds] Error 2
> drivers/thunderbolt/xdomain.c: In function 'modalias_show':
> drivers/thunderbolt/xdomain.c:733:16: error: 'sprintf' argument 3 overlaps destination object 'buf' [-Werror=restrict]
> 733 | return sprintf(buf, "%s\n", buf);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/thunderbolt/xdomain.c:727:36: note: destination object referenced by 'restrict'-qualified argument 1 was declared here
> 727 | char *buf)
> | ~~~~~~^~~
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/leds/led-class-flash.c | 2 +-
> drivers/thunderbolt/xdomain.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/leds/led-class-flash.c b/drivers/leds/led-class-flash.c
> index 185e17055317..6fe9d700dfef 100644
> --- a/drivers/leds/led-class-flash.c
> +++ b/drivers/leds/led-class-flash.c
> @@ -207,7 +207,7 @@ static ssize_t flash_fault_show(struct device *dev,
> mask <<= 1;
> }
>
> - return sprintf(buf, "%s\n", buf);
> + return strlen(strcat(buf, "\n"));
> }
> static DEVICE_ATTR_RO(flash_fault);
>
> diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c
> index d66ea4d616fd..eff32499610f 100644
> --- a/drivers/thunderbolt/xdomain.c
> +++ b/drivers/thunderbolt/xdomain.c
> @@ -730,7 +730,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
>
> /* Full buffer size except new line and null termination */
> get_modalias(svc, buf, PAGE_SIZE - 2);
> - return sprintf(buf, "%s\n", buf);
> + return strlen(strcat(buf, "\n"));
> }
> static DEVICE_ATTR_RO(modalias);
>
> --
> 2.29.2
>

You also have a thunderbolt change in here as well :(