Message ID | 1515413285-40933-1-git-send-email-wangxiongfeng2@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | auxdisplay: use correct string length | expand |
[ 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
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 > > . >
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; }