ubsan fix for 16 bit scaling

Bug: libyuv:813
Test: tested downstream for ubsan.
Change-Id: I28c1d4e815348d051f781c9b7d8197f74905cab7
Reviewed-on: https://chromium-review.googlesource.com/1173721
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
This commit is contained in:
Frank Barchard 2018-08-13 18:32:02 -07:00 committed by Commit Bot
parent 91f0a7504b
commit 67eff529ad

View File

@ -542,7 +542,7 @@ void ScaleFilterCols64_C(uint8_t* dst_ptr,
// Same as 8 bit arm blender but return is cast to uint16_t // Same as 8 bit arm blender but return is cast to uint16_t
#define BLENDER(a, b, f) \ #define BLENDER(a, b, f) \
(uint16_t)((int)(a) + ((((int)((f)) * ((int)(b) - (int)(a))) + 0x8000) >> 16)) (uint16_t)((int)(a) + (int)((((int64_t)((f)) * ((int64_t)(b) - (int)(a))) + 0x8000) >> 16))
void ScaleFilterCols_16_C(uint16_t* dst_ptr, void ScaleFilterCols_16_C(uint16_t* dst_ptr,
const uint16_t* src_ptr, const uint16_t* src_ptr,