Skip to contentSkip to conversation

DPDK build for Arm with GCC 12

DISCUSSION Thomas Monjalon 2 participants 3 messages Oct 4, 2022 – Oct 6, 2022

lore
Share & tools
lore
#0 lore raw

Hello,

GCC 12 suspects an out-of-bound write in NEON port_groupx4():

In file included from examples/ipsec-secgw/ipsec_neon.h:9,
from examples/ipsec-secgw/ipsec_lpm_neon.h:9, from examples/ipsec-secgw/ipsec_worker.c:16:
examples/common/neon/port_group.h: In function 'port_groupx4':
examples/common/neon/port_group.h:42:21: error:

	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   42 |                 pnum->u64 = gptbl[v].pnum;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~
examples/common/neon/port_group.h:43:21: error:
	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   43 |                 pnum->u16[FWDSTEP] = 1;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~

Please could you help fixing it?

#1 lore raw

Hi Thomas,

Quoted 38 lines

-----Original Message-----
From: Thomas Monjalon <[email protected]>
Sent: Tuesday, October 4, 2022 6:17 PM
To: Rahul Bhansali <[email protected]>; Akhil Goyal <[email protected]>
Cc: [email protected]; [email protected]; [email protected]
Subject: [EXT] DPDK build for Arm with GCC 12

External Email

----------------------------------------------------------------------
Hello,

GCC 12 suspects an out-of-bound write in NEON port_groupx4():

In file included from examples/ipsec-secgw/ipsec_neon.h:9,
from examples/ipsec-secgw/ipsec_lpm_neon.h:9, from examples/ipsec-secgw/ipsec_worker.c:16:
examples/common/neon/port_group.h: In function 'port_groupx4':
examples/common/neon/port_group.h:42:21: error:

	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   42 |                 pnum->u64 = gptbl[v].pnum;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~
examples/common/neon/port_group.h:43:21: error:
	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   43 |                 pnum->u16[FWDSTEP] = 1;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~
Quoted 1 line

Please could you help fixing it?

This is already addressed in http://patches.dpdk.org/project/dpdk/patch/[email protected]/ by @Amit Prakash Shukla .

Quoted 1 line
#2 lore raw

06/10/2022 08:14, Rahul Bhansali:

Quoted 40 lines

Hi Thomas,

Quoted 38 lines

-----Original Message-----
From: Thomas Monjalon <[email protected]>
Sent: Tuesday, October 4, 2022 6:17 PM
To: Rahul Bhansali <[email protected]>; Akhil Goyal <[email protected]>
Cc: [email protected]; [email protected]; [email protected]
Subject: [EXT] DPDK build for Arm with GCC 12

External Email

----------------------------------------------------------------------
Hello,

GCC 12 suspects an out-of-bound write in NEON port_groupx4():

In file included from examples/ipsec-secgw/ipsec_neon.h:9,
from examples/ipsec-secgw/ipsec_lpm_neon.h:9, from examples/ipsec-secgw/ipsec_worker.c:16:
examples/common/neon/port_group.h: In function 'port_groupx4':
examples/common/neon/port_group.h:42:21: error:

	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   42 |                 pnum->u64 = gptbl[v].pnum;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~
examples/common/neon/port_group.h:43:21: error:
	array subscript 'union <anonymous>[0]' is partly outside
	array bounds of 'uint16_t[5]'
   43 |                 pnum->u16[FWDSTEP] = 1;
      |                     ^~
examples/common/neon/port_group.h:21:23: note:
	object 'pn' of size [0, 10]
   21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1,
      |              ~~~~~~~~~^~~~~~~~~~~~~~~
Quoted 2 lines
Quoted 1 line

Please could you help fixing it?

This is already addressed in http://patches.dpdk.org/project/dpdk/patch/[email protected]/ by @Amit Prakash Shukla .

Yes thank you.