From a7a7f32c8ad0179a1a85d0a8cff35924e6d90be8 Mon Sep 17 00:00:00 2001
|
From: Michael Niedermayer <michael@niedermayer.cc>
|
Date: Fri, 28 May 2021 21:37:26 +0200
|
Subject: [PATCH] avcodec/aacenc: Avoid 0 lambda
|
|
Fixes: Ticket8003
|
Fixes: CVE-2020-20453
|
|
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
CVE: CVE-2020-20453
|
Upstream-Status: Backport [a7a7f32c8ad0179a1a85d0a8cff35924e6d90be8]
|
|
Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
|
---
|
libavcodec/aacenc.c | 3 ++-
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
|
index aa223cf25f..e80591ba86 100644
|
--- a/libavcodec/aacenc.c
|
+++ b/libavcodec/aacenc.c
|
@@ -28,6 +28,7 @@
|
* TODOs:
|
* add sane pulse detection
|
***********************************/
|
+#include <float.h>
|
|
#include "libavutil/libm.h"
|
#include "libavutil/float_dsp.h"
|
@@ -852,7 +853,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
|
/* Not so fast though */
|
ratio = sqrtf(ratio);
|
}
|
- s->lambda = FFMIN(s->lambda * ratio, 65536.f);
|
+ s->lambda = av_clipf(s->lambda * ratio, FLT_MIN, 65536.f);
|
|
/* Keep iterating if we must reduce and lambda is in the sky */
|
if (ratio > 0.9f && ratio < 1.1f) {
|
--
|
2.32.0
|