diff mbox series

led-class-flash: fix -Wrestrict warning

Message ID 20210927101610.1669830-1-arnd@kernel.org
State New
Headers show
Series led-class-flash: fix -Wrestrict warning | expand

Commit Message

Arnd Bergmann Sept. 27, 2021, 10:15 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>


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@arndb.de>

---
 drivers/leds/led-class-flash.c | 2 +-
 drivers/thunderbolt/xdomain.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.29.2

Comments

Greg KH Sept. 27, 2021, 10:22 a.m. UTC | #1
On Mon, Sep 27, 2021 at 12:15:59PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>

> 

> 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@arndb.de>

> ---

>  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 :(
Pavel Machek Sept. 27, 2021, 10:31 a.m. UTC | #2
Hi!

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  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);

>


That's not just a warning. .. the code is crazy. I'll take it if you
split it from the thunderbolt change.

Best regards,
								Pavel

> 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


-- 
http://www.livejournal.com/~pavelmachek
Arnd Bergmann Sept. 27, 2021, 1:12 p.m. UTC | #3
On Mon, Sep 27, 2021 at 12:22 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>

> On Mon, Sep 27, 2021 at 12:15:59PM +0200, Arnd Bergmann wrote:

> > From: Arnd Bergmann <arnd@arndb.de>

> >

> > 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)

> >

>

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


Oh, and I forgot to explain the change, clearly this one was meant to go
into the 'rework, then send' pile of my fixes.

v2 coming in a bit.

       Arnd
diff mbox series

Patch

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);