From 67eff529ad07f1c4441c524c5dee0aafb0bbf594 Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Mon, 13 Aug 2018 18:32:02 -0700 Subject: [PATCH] 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 Reviewed-by: Mirko Bonadei Commit-Queue: Frank Barchard --- source/scale_common.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/scale_common.cc b/source/scale_common.cc index 106b482a6..a94fe9f8e 100644 --- a/source/scale_common.cc +++ b/source/scale_common.cc @@ -542,7 +542,7 @@ void ScaleFilterCols64_C(uint8_t* dst_ptr, // Same as 8 bit arm blender but return is cast to uint16_t #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, const uint16_t* src_ptr,