From 211f37ee633aa31c37160c84cc9b868c10fbe8b9 Mon Sep 17 00:00:00 2001 From: Pascal Massimino Date: Mon, 9 Jul 2018 17:33:44 -0700 Subject: [PATCH] fix endian problems in pattern copy CopyBlock8b() was over-using memcpy() of 16b values. BUG=webp:393 Change-Id: Id56f10d334b9a453fbcf50dabfaa63529bcff7e5 --- src/dec/vp8l_dec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dec/vp8l_dec.c b/src/dec/vp8l_dec.c index 1316089c..e5298eb4 100644 --- a/src/dec/vp8l_dec.c +++ b/src/dec/vp8l_dec.c @@ -933,7 +933,11 @@ static WEBP_INLINE void CopyBlock8b(uint8_t* const dst, int dist, int length) { #endif break; case 2: +#if !defined(WORDS_BIGENDIAN) memcpy(&pattern, src, sizeof(uint16_t)); +#else + pattern = ((uint32_t)src[0] << 8) | src[1]; +#endif #if defined(__arm__) || defined(_M_ARM) pattern |= pattern << 16; #elif defined(WEBP_USE_MIPS_DSP_R2)