From 11b722e4ae91b611f605221587ec8e0829c27949 Mon Sep 17 00:00:00 2001 From: Matheus Castanho Date: Tue, 23 Jun 2020 10:26:19 -0300 Subject: [PATCH] Fix invalid memory access on ppc and ppc64 --- contrib/power/adler32_power8.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/contrib/power/adler32_power8.c b/contrib/power/adler32_power8.c index 473c39457..fdd086453 100644 --- a/contrib/power/adler32_power8.c +++ b/contrib/power/adler32_power8.c @@ -110,16 +110,15 @@ uLong ZLIB_INTERNAL _adler32_power8 (uLong adler, const Bytef* buf, uInt len) 6, 5, 4, 3, 2, 1}; const vector unsigned char vsh = vec_splat_u8(4); const vector unsigned int vmask = {0xffffffff, 0x0, 0x0, 0x0}; - vector unsigned int vs1 = vec_xl(0, &s1); - vector unsigned int vs2 = vec_xl(0, &s2); + vector unsigned int vs1 = { 0 }; + vector unsigned int vs2 = { 0 }; vector unsigned int vs1_save = { 0 }; vector unsigned int vsum1, vsum2; vector unsigned char vbuf; int n; - /* Zeros the undefined values of vectors vs1, vs2. */ - vs1 = vec_and(vs1, vmask); - vs2 = vec_and(vs2, vmask); + vs1[0] = s1; + vs2[0] = s2; /* Do length bigger than NMAX in blocks of NMAX size. */ while (len >= NMAX) {