From ec48e4328eac1f137dc6eff8d6f1dd38810fe583 Mon Sep 17 00:00:00 2001 From: Wan-Teh Chang Date: Wed, 5 Apr 2023 14:43:19 -0700 Subject: [PATCH] Add assertions for the Clang static analyzer The Clang static analyzer (scan-build) in LLVM 14 warns about array index out of bounds in scaletbl[boxwidth - minboxwidth] in ScaleAddCols2_C() and ScaleAddCols2_16_C(). The scaletbl array has two elements. It's not clear the index boxwidth - minboxwidth is either 0 or 1. Change-Id: I072476e86950154beffe6b1a89915755118b3cbd Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4403882 Reviewed-by: Frank Barchard Commit-Queue: Frank Barchard Commit-Queue: Wan-Teh Chang --- source/scale.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/scale.cc b/source/scale.cc index 830754ce6..90abaefe8 100644 --- a/source/scale.cc +++ b/source/scale.cc @@ -820,6 +820,7 @@ static void ScaleAddCols2_C(int dst_width, int ix = x >> 16; x += dx; boxwidth = MIN1((x >> 16) - ix); + assert(((boxwidth - minboxwidth) == 0) || ((boxwidth - minboxwidth) == 1)); *dst_ptr++ = (uint8_t)(SumPixels(boxwidth, src_ptr + ix) * scaletbl[boxwidth - minboxwidth] >> 16); @@ -842,6 +843,7 @@ static void ScaleAddCols2_16_C(int dst_width, int ix = x >> 16; x += dx; boxwidth = MIN1((x >> 16) - ix); + assert(((boxwidth - minboxwidth) == 0) || ((boxwidth - minboxwidth) == 1)); *dst_ptr++ = SumPixels_16(boxwidth, src_ptr + ix) * scaletbl[boxwidth - minboxwidth] >> 16;