diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2021-05-28 20:31:19 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2021-05-29 20:14:24 +0200 |
commit | 38d18fb57863bb9c54e68ae44aa780c5c282a184 (patch) | |
tree | 0905625e67e965ce090e6c15fc002233d3d0c8bf /libavcodec/lpc.h | |
parent | 223b5e8ac9f6461bb13ed365419ec485c5b2b002 (diff) | |
download | ffmpeg-38d18fb57863bb9c54e68ae44aa780c5c282a184.tar.gz |
avcodec/lpc: Avoid floating point division by 0
Fixes: Ticket7996
Fixes: CVE-2020-20445
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/lpc.h')
-rw-r--r-- | libavcodec/lpc.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/lpc.h b/libavcodec/lpc.h index 88ca247f87..52170fd623 100644 --- a/libavcodec/lpc.h +++ b/libavcodec/lpc.h @@ -143,7 +143,7 @@ static inline void compute_ref_coefs(const LPC_TYPE *autoc, int max_order, gen0[i] = gen1[i] = autoc[i + 1]; err = autoc[0]; - ref[0] = -gen1[0] / err; + ref[0] = -gen1[0] / ((USE_FIXED || err) ? err : 1); err += gen1[0] * ref[0]; if (error) error[0] = err; @@ -152,7 +152,7 @@ static inline void compute_ref_coefs(const LPC_TYPE *autoc, int max_order, gen1[j] = gen1[j + 1] + ref[i - 1] * gen0[j]; gen0[j] = gen1[j + 1] * ref[i - 1] + gen0[j]; } - ref[i] = -gen1[0] / err; + ref[i] = -gen1[0] / ((USE_FIXED || err) ? err : 1); err += gen1[0] * ref[i]; if (error) error[i] = err; |