mirror of https://git.ffmpeg.org/ffmpeg.git
tests/checkasm/llauddsp: Avoid UB integer overflow
The only multiplicators used in scalarproduct_and_madd_* are -1, 0 and +1. Yet it is of type int and the checkasm test uses the complete range of int for it, leading to overflows that don't happen for actual users. Fix this by using a more reasonable range for mul: Given that it is used in v1[i] += v3[i] * mul with v1 being a 16bit integer, it makes no sense to use values for mul that don't fit into 16bit. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
d4083ecb7c
commit
dff0a1557e
|
@ -49,7 +49,7 @@ static void check_scalarproduct_and_madd_int16(LLAudDSPContext *c)
|
|||
randomize_buf(v1, BUF_SIZE);
|
||||
randomize_buf(v2, BUF_SIZE);
|
||||
randomize_buf(v3, BUF_SIZE);
|
||||
mul = rnd();
|
||||
mul = (int16_t)rnd();
|
||||
|
||||
if (check_func(c->scalarproduct_and_madd_int16,
|
||||
"scalarproduct_and_madd_int16")) {
|
||||
|
@ -84,7 +84,7 @@ static void check_scalarproduct_and_madd_int32(LLAudDSPContext *c)
|
|||
randomize_buf(v1, BUF_SIZE);
|
||||
randomize_buf(v2, BUF_SIZE);
|
||||
randomize_buf(v3, BUF_SIZE);
|
||||
mul = rnd();
|
||||
mul = (int16_t)rnd();
|
||||
|
||||
if (check_func(c->scalarproduct_and_madd_int32,
|
||||
"scalarproduct_and_madd_int32")) {
|
||||
|
|
Loading…
Reference in New Issue