> -----Original Message----- > From: De Lara Guarch, Pablo > Sent: Thursday, April 7, 2016 15:15 > To: Kulasek, TomaszX <tomaszx.kulasek at intel.com>; dev at dpdk.org > Subject: RE: [dpdk-dev] [PATCH] app/test: fix array subscript is above > array bounds for gcc 4.5 > > > > > -----Original Message----- > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Tomasz Kulasek > > Sent: Thursday, April 07, 2016 2:07 PM > > To: dev at dpdk.org > > Subject: [dpdk-dev] [PATCH] app/test: fix array subscript is above > > array bounds for gcc 4.5 > > > > cc1: warnings being treated as errors > > DPDK/app/test/test_cryptodev.c: In function > > 'test_snow3g_encrypted_authenti > > cation.clone.3': > > DPDK/x86_64-ivshmem-linuxapp-gcc/include/rte_memcpy.h:796:14: error: > > array > > subscript is above array bounds > > compilation terminated due to -Wfatal-errors. > > > > > > ROOT OF PROBLEM: > > ---------------- > > > > In lines like: > > > > rte_memcpy(sym_op->cipher.iv.data, iv, iv_len); > > > > when "iv" is 64 bytes long array, and "iv_len" is "unsigned int", > > compiler tries to evaluate also a code for array size larger than 255 > > bytes long and reports error "array subscript is above array bounds" in > line: > > > > rte_memcpy.h:796 > > > > rte_mov128((uint8_t *)dst + 128, (const uint8_t *)src + 128); > > > > caused by evaluation to: > > > > rte_mov128((uint8_t *)sym_op->cipher.iv.data + 128, (const uint8_t > *)iv > > + 128); > > > > where "iv" is 64 bytes long buffer and "iv + 128" point out of it, gcc > 4.5. > > > > > > SOLUTION: > > --------- > > > > Using uint8_t as a size of copied block prevents to evaluate in > > rte_memcpy code for size bigger than 255, causing the problem. > > > > > > Don't forget to include the "Fixes" line. > Thanks, > Pablo > > > Signed-off-by: Tomasz Kulasek <tomaszx.kulasek at intel.com> > > --- > > app/test/test_cryptodev.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-)
Ok. I'm sending v2 Tomasz.