Messages in this thread | | | Date | Wed, 27 Jul 2022 20:50:18 +0800 | Subject | Re: drivers/bus/fsl-mc/dprc.c:494:9: warning: 'strncpy' specified bound 16 equals destination size | From | Kefeng Wang <> |
| |
On 2022/7/27 20:23, kernel test robot wrote: > Hi Kefeng,
Hi, it seems that my patch won't lead to this issue,but I could change strncpy to strscpy_pad to fix the warning,
https://lore.kernel.org/lkml/20220727125432.160233-1-wangkefeng.wang@huawei.com/T/#u
> > FYI, the error/warning still remains. > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 39c3c396f8131f3db454c80e0fcfcdc54ed9ec01 > commit: dd03762ab608e058c8f390ad9cf667e490089796 arm64: Enable KCSAN > date: 8 months ago > config: arm64-randconfig-c023-20220727 (https://download.01.org/0day-ci/archive/20220727/202207272044.M4FM7xVg-lkp@intel.com/config) > compiler: aarch64-linux-gcc (GCC) 12.1.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dd03762ab608e058c8f390ad9cf667e490089796 > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > git fetch --no-tags linus master > git checkout dd03762ab608e058c8f390ad9cf667e490089796 > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/bus/fsl-mc/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > drivers/bus/fsl-mc/dprc.c: In function 'dprc_get_obj': > drivers/bus/fsl-mc/dprc.c:453:9: warning: 'strncpy' output may be truncated copying 15 bytes from a string of length 15 [-Wstringop-truncation] > 453 | strncpy(obj_desc->type, rsp_params->type, 16); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/bus/fsl-mc/dprc.c:455:9: warning: 'strncpy' output may be truncated copying 15 bytes from a string of length 15 [-Wstringop-truncation] > 455 | strncpy(obj_desc->label, rsp_params->label, 16); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/bus/fsl-mc/dprc.c: In function 'dprc_set_obj_irq': >>> drivers/bus/fsl-mc/dprc.c:494:9: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation] > 494 | strncpy(cmd_params->obj_type, obj_type, 16); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/bus/fsl-mc/dprc.c: In function 'dprc_get_obj_region': > drivers/bus/fsl-mc/dprc.c:567:9: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation] > 567 | strncpy(cmd_params->obj_type, obj_type, 16); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > vim +/strncpy +494 drivers/bus/fsl-mc/dprc.c > > 31c889653c10ddaf drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-03-05 460 > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 461 /** > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 462 * dprc_set_obj_irq() - Set IRQ information for object to trigger an interrupt. > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 463 * @mc_io: Pointer to MC portal's I/O object > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 464 * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 465 * @token: Token of DPRC object > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 466 * @obj_type: Type of the object to set its IRQ > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 467 * @obj_id: ID of the object to set its IRQ > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 468 * @irq_index: The interrupt index to configure > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 469 * @irq_cfg: IRQ configuration > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 470 * > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 471 * Return: '0' on Success; Error code otherwise. > e9bf3f206bd5e61e drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-24 472 */ > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 473 int dprc_set_obj_irq(struct fsl_mc_io *mc_io, > ba72f25b2588e1ac drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-25 474 u32 cmd_flags, > ba72f25b2588e1ac drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-25 475 u16 token, > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 476 char *obj_type, > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 477 int obj_id, > ba72f25b2588e1ac drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-25 478 u8 irq_index, > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 479 struct dprc_irq_cfg *irq_cfg) > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 480 { > 5b04cedeca188874 drivers/bus/fsl-mc/dprc.c Ioana Ciornei 2018-03-15 481 struct fsl_mc_command cmd = { 0 }; > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 482 struct dprc_cmd_set_obj_irq *cmd_params; > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 483 > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 484 /* prepare command */ > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 485 cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_OBJ_IRQ, > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 486 cmd_flags, > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 487 token); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 488 cmd_params = (struct dprc_cmd_set_obj_irq *)cmd.params; > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 489 cmd_params->irq_val = cpu_to_le32(irq_cfg->val); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 490 cmd_params->irq_index = irq_index; > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 491 cmd_params->irq_addr = cpu_to_le64(irq_cfg->paddr); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 492 cmd_params->irq_num = cpu_to_le32(irq_cfg->irq_num); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 493 cmd_params->obj_id = cpu_to_le32(obj_id); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 @494 strncpy(cmd_params->obj_type, obj_type, 16); > 9989b59961a8ad55 drivers/staging/fsl-mc/bus/dprc.c Ioana Radulescu 2016-06-22 495 cmd_params->obj_type[15] = '\0'; > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 496 > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 497 /* send command to mc*/ > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 498 return mc_send_command(mc_io, &cmd); > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 499 } > c9d57ea0b6fb0bc0 drivers/staging/fsl-mc/bus/dprc.c Laurentiu Tudor 2017-11-17 500 EXPORT_SYMBOL_GPL(dprc_set_obj_irq); > 1ee695fab32e25ff drivers/staging/fsl-mc/bus/dprc.c J. German Rivera 2015-09-23 501 > > :::::: The code at line 494 was first introduced by commit > :::::: 9989b59961a8ad55d92df4588b556f0c6c838ec7 staging: fsl-mc: convert mc command build/parse to use C structs > > :::::: TO: Ioana Radulescu <ruxandra.radulescu@nxp.com> > :::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >
| |