drivers/edac/thunderx_edac.c:1220:17: warning: 'strncat' specified bound 1024 equals destination size

From: kernel test robot
Date: Fri Nov 12 2021 - 21:50:50 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 66f4beaa6c1d28161f534471484b2daa2de1dce0
commit: c37495d6254c237578db3121dcf79857e033f8ff slab: add __alloc_size attributes for better bounds checking
date: 6 days ago
config: arm64-buildonly-randconfig-r001-20211111 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.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=c37495d6254c237578db3121dcf79857e033f8ff
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout c37495d6254c237578db3121dcf79857e033f8ff
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

drivers/edac/thunderx_edac.c: In function 'thunderx_ocx_lnk_threaded_isr':
>> drivers/edac/thunderx_edac.c:1220:17: warning: 'strncat' specified bound 1024 equals destination size [-Wstringop-truncation]
1220 | strncat(msg, other, OCX_MESSAGE_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/edac/thunderx_edac.c: In function 'thunderx_ocx_com_threaded_isr':
drivers/edac/thunderx_edac.c:1136:17: warning: 'strncat' specified bound 1024 equals destination size [-Wstringop-truncation]
1136 | strncat(msg, other, OCX_MESSAGE_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/edac/thunderx_edac.c:1145:33: warning: 'strncat' specified bound 1024 equals destination size [-Wstringop-truncation]
1145 | strncat(msg, other, OCX_MESSAGE_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/edac/thunderx_edac.c:1150:33: warning: 'strncat' specified bound 1024 equals destination size [-Wstringop-truncation]
1150 | strncat(msg, other, OCX_MESSAGE_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/edac/thunderx_edac.c: In function 'thunderx_l2c_threaded_isr':
drivers/edac/thunderx_edac.c:1899:17: warning: 'strncat' specified bound 1024 equals destination size [-Wstringop-truncation]
1899 | strncat(msg, other, L2C_MESSAGE_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/strncat +1220 drivers/edac/thunderx_edac.c

41003396f932d7 Sergey Temerkhanov 2017-03-24 1186
41003396f932d7 Sergey Temerkhanov 2017-03-24 1187 static irqreturn_t thunderx_ocx_lnk_threaded_isr(int irq, void *irq_id)
41003396f932d7 Sergey Temerkhanov 2017-03-24 1188 {
41003396f932d7 Sergey Temerkhanov 2017-03-24 1189 struct msix_entry *msix = irq_id;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1190 struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1191 msix_ent[msix->entry]);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1192 irqreturn_t ret = IRQ_NONE;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1193 unsigned long tail;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1194 struct ocx_link_err_ctx *ctx;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1195
41003396f932d7 Sergey Temerkhanov 2017-03-24 1196 char *msg;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1197 char *other;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1198
41003396f932d7 Sergey Temerkhanov 2017-03-24 1199 msg = kmalloc(OCX_MESSAGE_SIZE, GFP_KERNEL);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1200 other = kmalloc(OCX_OTHER_SIZE, GFP_KERNEL);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1201
41003396f932d7 Sergey Temerkhanov 2017-03-24 1202 if (!msg || !other)
41003396f932d7 Sergey Temerkhanov 2017-03-24 1203 goto err_free;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1204
41003396f932d7 Sergey Temerkhanov 2017-03-24 1205 while (CIRC_CNT(ocx->link_ring_head, ocx->link_ring_tail,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1206 ARRAY_SIZE(ocx->link_err_ctx))) {
41003396f932d7 Sergey Temerkhanov 2017-03-24 1207 tail = ring_pos(ocx->link_ring_head,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1208 ARRAY_SIZE(ocx->link_err_ctx));
41003396f932d7 Sergey Temerkhanov 2017-03-24 1209
41003396f932d7 Sergey Temerkhanov 2017-03-24 1210 ctx = &ocx->link_err_ctx[tail];
41003396f932d7 Sergey Temerkhanov 2017-03-24 1211
41003396f932d7 Sergey Temerkhanov 2017-03-24 1212 snprintf(msg, OCX_MESSAGE_SIZE,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1213 "%s: OCX_COM_LINK_INT[%d]: %016llx",
41003396f932d7 Sergey Temerkhanov 2017-03-24 1214 ocx->edac_dev->ctl_name,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1215 ctx->link, ctx->reg_com_link_int);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1216
41003396f932d7 Sergey Temerkhanov 2017-03-24 1217 decode_register(other, OCX_OTHER_SIZE,
41003396f932d7 Sergey Temerkhanov 2017-03-24 1218 ocx_com_link_errors, ctx->reg_com_link_int);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1219
41003396f932d7 Sergey Temerkhanov 2017-03-24 @1220 strncat(msg, other, OCX_MESSAGE_SIZE);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1221
41003396f932d7 Sergey Temerkhanov 2017-03-24 1222 if (ctx->reg_com_link_int & OCX_COM_LINK_INT_UE)
41003396f932d7 Sergey Temerkhanov 2017-03-24 1223 edac_device_handle_ue(ocx->edac_dev, 0, 0, msg);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1224 else if (ctx->reg_com_link_int & OCX_COM_LINK_INT_CE)
41003396f932d7 Sergey Temerkhanov 2017-03-24 1225 edac_device_handle_ce(ocx->edac_dev, 0, 0, msg);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1226
41003396f932d7 Sergey Temerkhanov 2017-03-24 1227 ocx->link_ring_tail++;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1228 }
41003396f932d7 Sergey Temerkhanov 2017-03-24 1229
41003396f932d7 Sergey Temerkhanov 2017-03-24 1230 ret = IRQ_HANDLED;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1231 err_free:
41003396f932d7 Sergey Temerkhanov 2017-03-24 1232 kfree(other);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1233 kfree(msg);
41003396f932d7 Sergey Temerkhanov 2017-03-24 1234
41003396f932d7 Sergey Temerkhanov 2017-03-24 1235 return ret;
41003396f932d7 Sergey Temerkhanov 2017-03-24 1236 }
41003396f932d7 Sergey Temerkhanov 2017-03-24 1237

:::::: The code at line 1220 was first introduced by commit
:::::: 41003396f932d7f027725c7acebb6a7caa41dc3e EDAC, thunderx: Add Cavium ThunderX EDAC driver

:::::: TO: Sergey Temerkhanov <s.temerkhanov@xxxxxxxxx>
:::::: CC: Borislav Petkov <bp@xxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip