diff mbox

[FFmpeg-devel,11/12] avcodec/loco: Check for end of input in the first line

Message ID 20190925203858.27870-11-michael@niedermayer.cc
State Accepted
Commit c5a52eb5cd5613cfede81648a58cd95088d0a3a7
Headers show

Commit Message

Michael Niedermayer Sept. 25, 2019, 8:38 p.m. UTC
Fixes: Timeout (85sec -> 0.1sec)
Fixes: 17634/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LOCO_fuzzer-5666410809786368

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/loco.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Paul B Mahol Sept. 26, 2019, 8:05 a.m. UTC | #1
lgtm

On 9/25/19, Michael Niedermayer <michael@niedermayer.cc> wrote:
> Fixes: Timeout (85sec -> 0.1sec)
> Fixes:
> 17634/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LOCO_fuzzer-5666410809786368
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/loco.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/libavcodec/loco.c b/libavcodec/loco.c
> index d8bf68a100..e891d83ece 100644
> --- a/libavcodec/loco.c
> +++ b/libavcodec/loco.c
> @@ -155,6 +155,8 @@ static int loco_decode_plane(LOCOContext *l, uint8_t
> *data, int width, int heigh
>      /* restore top line */
>      for (i = 1; i < width; i++) {
>          val = loco_get_rice(&rc);
> +        if (val == INT_MIN)
> +           return AVERROR_INVALIDDATA;
>          data[i] = data[i - 1] + val;
>      }
>      data += stride;
> --
> 2.23.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Michael Niedermayer Sept. 26, 2019, 6:38 p.m. UTC | #2
On Thu, Sep 26, 2019 at 10:05:38AM +0200, Paul B Mahol wrote:
> lgtm

will apply

thx

[...]
diff mbox

Patch

diff --git a/libavcodec/loco.c b/libavcodec/loco.c
index d8bf68a100..e891d83ece 100644
--- a/libavcodec/loco.c
+++ b/libavcodec/loco.c
@@ -155,6 +155,8 @@  static int loco_decode_plane(LOCOContext *l, uint8_t *data, int width, int heigh
     /* restore top line */
     for (i = 1; i < width; i++) {
         val = loco_get_rice(&rc);
+        if (val == INT_MIN)
+           return AVERROR_INVALIDDATA;
         data[i] = data[i - 1] + val;
     }
     data += stride;