From: Arnd Bergmann Date: Mon, 27 Sep 2021 13:15:47 +0000 (+0200) Subject: led-class-flash: fix -Wrestrict warning X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=811b5440c6e4998755990fd2c1455f42f3aae3b0;p=linux.git led-class-flash: fix -Wrestrict warning gcc-11 warns when building with W=1: 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) | ~~~~~~^~~ There is no need for the sprintf() here when a strcat() does the same thing without invoking undefined behavior. Signed-off-by: Arnd Bergmann Signed-off-by: Pavel Machek --- diff --git a/drivers/leds/led-class-flash.c b/drivers/leds/led-class-flash.c index 185e17055317c..6fe9d700dfef6 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);