mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] auxdisplay: use correct string length
@ 2018-01-08 12:08 Xiongfeng Wang
  2018-01-16  8:40 ` Dan Carpenter
  0 siblings, 1 reply; 3+ messages in thread
From: Xiongfeng Wang @ 2018-01-08 12:08 UTC (permalink / raw)
  To: miguel.ojeda.sandonis; +Cc: linux-kernel, arnd, wangxiongfeng2

From: Xiongfeng Wang <xiongfeng.wang@linaro.org>

gcc-8 reports

drivers/auxdisplay/panel.c: In function 'panel_attach':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' specified
bound 12 equals destination size [-Wstringop-truncation]

We need one less byte or call strlcpy() to make it a nul-terminated
string.

Signed-off-by: Xiongfeng Wang <xiongfeng.wang@linaro.org>
---
 drivers/auxdisplay/panel.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/auxdisplay/panel.c b/drivers/auxdisplay/panel.c
index ea7869c..f8344e4 100644
--- a/drivers/auxdisplay/panel.c
+++ b/drivers/auxdisplay/panel.c
@@ -1506,10 +1506,10 @@ static struct logical_input *panel_bind_key(const char *name, const char *press,
 	key->rise_time = 1;
 	key->fall_time = 1;
 
-	strncpy(key->u.kbd.press_str, press, sizeof(key->u.kbd.press_str));
-	strncpy(key->u.kbd.repeat_str, repeat, sizeof(key->u.kbd.repeat_str));
+	strncpy(key->u.kbd.press_str, press, sizeof(key->u.kbd.press_str) - 1);
+	strncpy(key->u.kbd.repeat_str, repeat, sizeof(key->u.kbd.repeat_str) - 1);
 	strncpy(key->u.kbd.release_str, release,
-		sizeof(key->u.kbd.release_str));
+		sizeof(key->u.kbd.release_str - 1));
 	list_add(&key->list, &logical_inputs);
 	return key;
 }
-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] auxdisplay: use correct string length
  2018-01-08 12:08 [PATCH] auxdisplay: use correct string length Xiongfeng Wang
@ 2018-01-16  8:40 ` Dan Carpenter
  2018-01-16  9:22   ` Xiongfeng Wang
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2018-01-16  8:40 UTC (permalink / raw)
  To: kbuild, Xiongfeng Wang
  Cc: kbuild-all, miguel.ojeda.sandonis, linux-kernel, arnd,
	wangxiongfeng2, Dan Carpenter

[ The kbuild robot is being tweaked so the actual warnings are missing
  but it's easy enough to guess what it was - dan ]

Hi Xiongfeng,

Thank you for the patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/Xiongfeng-Wang/auxdisplay-use-correct-string-length/20180110-180916

# https://github.com/0day-ci/linux/commit/eab240fbc00377bf3e18428b401e651bd6296da0
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout eab240fbc00377bf3e18428b401e651bd6296da0
vim +1512 drivers/auxdisplay/panel.c

7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1483  
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1484  /* tries to bind a key to the signal name <name>. The key will send the
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1485   * strings <press>, <repeat>, <release> for these respective events.
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1486   * Returns the pointer to the new key if ok, NULL if the key could not be bound.
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1487   */
36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1488  static struct logical_input *panel_bind_key(const char *name, const char *press,
36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1489  					    const char *repeat,
36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1490  					    const char *release)
698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1491  {
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1492  	struct logical_input *key;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1493  
fdf4a4948 drivers/staging/panel/panel.c Dominique van den Broeck 2014-05-21  1494  	key = kzalloc(sizeof(*key), GFP_KERNEL);
eb073a9bf drivers/staging/panel/panel.c Toshiaki Yamane          2012-07-12  1495  	if (!key)
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1496  		return NULL;
eb073a9bf drivers/staging/panel/panel.c Toshiaki Yamane          2012-07-12  1497  
698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1498  	if (!input_name2mask(name, &key->mask, &key->value, &scan_mask_i,
cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1499  			     &scan_mask_o)) {
cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1500  		kfree(key);
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1501  		return NULL;
cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1502  	}
698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1503  
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1504  	key->type = INPUT_TYPE_KBD;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1505  	key->state = INPUT_ST_LOW;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1506  	key->rise_time = 1;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1507  	key->fall_time = 1;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1508  
eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08  1509  	strncpy(key->u.kbd.press_str, press, sizeof(key->u.kbd.press_str) - 1);
eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08  1510  	strncpy(key->u.kbd.repeat_str, repeat, sizeof(key->u.kbd.repeat_str) - 1);
698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1511  	strncpy(key->u.kbd.release_str, release,
eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08 @1512  		sizeof(key->u.kbd.release_str - 1));
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The " - 1" shouldn't be inside the sizeof().  It should be:

		sizeof(key->u.kbd.release_str) - 1);

7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1513  	list_add(&key->list, &logical_inputs);
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1514  	return key;
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1515  }
7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1516  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] auxdisplay: use correct string length
  2018-01-16  8:40 ` Dan Carpenter
@ 2018-01-16  9:22   ` Xiongfeng Wang
  0 siblings, 0 replies; 3+ messages in thread
From: Xiongfeng Wang @ 2018-01-16  9:22 UTC (permalink / raw)
  To: Dan Carpenter, kbuild
  Cc: kbuild-all, miguel.ojeda.sandonis, linux-kernel, arnd



On 2018/1/16 16:40, Dan Carpenter wrote:
> [ The kbuild robot is being tweaked so the actual warnings are missing
>   but it's easy enough to guess what it was - dan ]
> 
> Hi Xiongfeng,
> 
> Thank you for the patch! Perhaps something to improve:
> 
> url:    https://github.com/0day-ci/linux/commits/Xiongfeng-Wang/auxdisplay-use-correct-string-length/20180110-180916
> 
> # https://github.com/0day-ci/linux/commit/eab240fbc00377bf3e18428b401e651bd6296da0
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout eab240fbc00377bf3e18428b401e651bd6296da0
> vim +1512 drivers/auxdisplay/panel.c
> 
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1483  
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1484  /* tries to bind a key to the signal name <name>. The key will send the
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1485   * strings <press>, <repeat>, <release> for these respective events.
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1486   * Returns the pointer to the new key if ok, NULL if the key could not be bound.
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1487   */
> 36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1488  static struct logical_input *panel_bind_key(const char *name, const char *press,
> 36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1489  					    const char *repeat,
> 36d2041a3 drivers/staging/panel/panel.c Peter Huewe              2013-02-15  1490  					    const char *release)
> 698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1491  {
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1492  	struct logical_input *key;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1493  
> fdf4a4948 drivers/staging/panel/panel.c Dominique van den Broeck 2014-05-21  1494  	key = kzalloc(sizeof(*key), GFP_KERNEL);
> eb073a9bf drivers/staging/panel/panel.c Toshiaki Yamane          2012-07-12  1495  	if (!key)
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1496  		return NULL;
> eb073a9bf drivers/staging/panel/panel.c Toshiaki Yamane          2012-07-12  1497  
> 698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1498  	if (!input_name2mask(name, &key->mask, &key->value, &scan_mask_i,
> cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1499  			     &scan_mask_o)) {
> cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1500  		kfree(key);
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1501  		return NULL;
> cb46f472c drivers/staging/panel/panel.c Kulikov Vasiliy          2010-07-12  1502  	}
> 698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1503  
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1504  	key->type = INPUT_TYPE_KBD;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1505  	key->state = INPUT_ST_LOW;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1506  	key->rise_time = 1;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1507  	key->fall_time = 1;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1508  
> eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08  1509  	strncpy(key->u.kbd.press_str, press, sizeof(key->u.kbd.press_str) - 1);
> eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08  1510  	strncpy(key->u.kbd.repeat_str, repeat, sizeof(key->u.kbd.repeat_str) - 1);
> 698b1515f drivers/staging/panel/panel.c Willy Tarreau            2008-11-22  1511  	strncpy(key->u.kbd.release_str, release,
> eab240fbc drivers/auxdisplay/panel.c    Xiongfeng Wang           2018-01-08 @1512  		sizeof(key->u.kbd.release_str - 1));
>                                                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> The " - 1" shouldn't be inside the sizeof().  It should be:
> 
> 		sizeof(key->u.kbd.release_str) - 1);

Sure, thanks. I will change it in another version.

> 
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1513  	list_add(&key->list, &logical_inputs);
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1514  	return key;
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1515  }
> 7005b5845 drivers/staging/panel/panel.c Willy Tarreau            2008-11-13  1516  
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 
> .
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-01-16  9:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-08 12:08 [PATCH] auxdisplay: use correct string length Xiongfeng Wang
2018-01-16  8:40 ` Dan Carpenter
2018-01-16  9:22   ` Xiongfeng Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®