Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK
@ 2023-01-30 23:45 Michael Niedermayer
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read Michael Niedermayer
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Michael Niedermayer @ 2023-01-30 23:45 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

The decoder is quite slow with max n taps
Fixes: Timeout
Fixes: 54063/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BONK_fuzzer-5087362407596032

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

diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c
index a20345db5c..127d534c9d 100644
--- a/tools/target_dec_fuzzer.c
+++ b/tools/target_dec_fuzzer.c
@@ -215,6 +215,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
     case AV_CODEC_ID_ARGO:        maxpixels  /= 1024;  break;
     case AV_CODEC_ID_BETHSOFTVID: maxpixels  /= 8192;  break;
     case AV_CODEC_ID_BINKVIDEO:   maxpixels  /= 32;    break;
+    case AV_CODEC_ID_BONK:        maxsamples /= 1<<20; break;
     case AV_CODEC_ID_CDTOONS:     maxpixels  /= 1024;  break;
     case AV_CODEC_ID_CFHD:        maxpixels  /= 16384; break;
     case AV_CODEC_ID_CINEPAK:     maxpixels  /= 128;   break;
-- 
2.17.1

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read
  2023-01-30 23:45 [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
@ 2023-01-30 23:45 ` Michael Niedermayer
  2023-01-31 11:21   ` Andreas Rheinhardt
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data Michael Niedermayer
  2023-02-01 19:15 ` [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
  2 siblings, 1 reply; 9+ messages in thread
From: Michael Niedermayer @ 2023-01-30 23:45 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Fixes: OOM
Fixes: 54572/clusterfuzz-testcase-minimized-ffmpeg_dem_LAF_fuzzer-4974038870523904

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

diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
index d02b479c4d..b78ec3649c 100644
--- a/libavformat/lafdec.c
+++ b/libavformat/lafdec.c
@@ -208,6 +208,8 @@ again:
         ret = avio_read(pb, s->data, st_count * st->codecpar->sample_rate * bpp);
         if (ret < 0)
             return ret;
+        if (ret != st_count * st->codecpar->sample_rate * bpp)
+            return AVERROR_INVALIDDATA;
     }
 
     st = ctx->streams[s->index];
-- 
2.17.1

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data
  2023-01-30 23:45 [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read Michael Niedermayer
@ 2023-01-30 23:45 ` Michael Niedermayer
  2023-01-31 11:25   ` Andreas Rheinhardt
  2023-02-01 19:15 ` [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
  2 siblings, 1 reply; 9+ messages in thread
From: Michael Niedermayer @ 2023-01-30 23:45 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Fixes: memleak

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavformat/lafdec.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
index b78ec3649c..f6d2d5f235 100644
--- a/libavformat/lafdec.c
+++ b/libavformat/lafdec.c
@@ -253,6 +253,15 @@ again:
     return 0;
 }
 
+static int laf_read_close(AVFormatContext *ctx)
+{
+    LAFContext *s = ctx->priv_data;
+
+    av_freep(&s->data);
+
+    return 0;
+}
+
 static int laf_read_seek(AVFormatContext *ctx, int stream_index,
                          int64_t timestamp, int flags)
 {
@@ -270,6 +279,7 @@ const AVInputFormat ff_laf_demuxer = {
     .read_probe     = laf_probe,
     .read_header    = laf_read_header,
     .read_packet    = laf_read_packet,
+    .read_close     = laf_read_close,
     .read_seek      = laf_read_seek,
     .extensions     = "laf",
     .flags          = AVFMT_GENERIC_INDEX,
-- 
2.17.1

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read Michael Niedermayer
@ 2023-01-31 11:21   ` Andreas Rheinhardt
  2023-01-31 20:27     ` Michael Niedermayer
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Rheinhardt @ 2023-01-31 11:21 UTC (permalink / raw)
  To: ffmpeg-devel

Michael Niedermayer:
> Fixes: OOM
> Fixes: 54572/clusterfuzz-testcase-minimized-ffmpeg_dem_LAF_fuzzer-4974038870523904
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavformat/lafdec.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
> index d02b479c4d..b78ec3649c 100644
> --- a/libavformat/lafdec.c
> +++ b/libavformat/lafdec.c
> @@ -208,6 +208,8 @@ again:
>          ret = avio_read(pb, s->data, st_count * st->codecpar->sample_rate * bpp);
>          if (ret < 0)
>              return ret;
> +        if (ret != st_count * st->codecpar->sample_rate * bpp)
> +            return AVERROR_INVALIDDATA;
>      }
>  
>      st = ctx->streams[s->index];

ffio_read()

- Andreas

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data Michael Niedermayer
@ 2023-01-31 11:25   ` Andreas Rheinhardt
  2023-01-31 20:43     ` Michael Niedermayer
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Rheinhardt @ 2023-01-31 11:25 UTC (permalink / raw)
  To: ffmpeg-devel

Michael Niedermayer:
> Fixes: memleak
> 
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavformat/lafdec.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
> index b78ec3649c..f6d2d5f235 100644
> --- a/libavformat/lafdec.c
> +++ b/libavformat/lafdec.c
> @@ -253,6 +253,15 @@ again:
>      return 0;
>  }
>  
> +static int laf_read_close(AVFormatContext *ctx)
> +{
> +    LAFContext *s = ctx->priv_data;
> +
> +    av_freep(&s->data);
> +
> +    return 0;
> +}
> +
>  static int laf_read_seek(AVFormatContext *ctx, int stream_index,
>                           int64_t timestamp, int flags)
>  {
> @@ -270,6 +279,7 @@ const AVInputFormat ff_laf_demuxer = {
>      .read_probe     = laf_probe,
>      .read_header    = laf_read_header,
>      .read_packet    = laf_read_packet,
> +    .read_close     = laf_read_close,
>      .read_seek      = laf_read_seek,
>      .extensions     = "laf",
>      .flags          = AVFMT_GENERIC_INDEX,

Needs the FF_FMT_INIT_CLEANUP flag, too (otherwise it will leak in case
of avformat_new_stream() failure).

- Andreas

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read
  2023-01-31 11:21   ` Andreas Rheinhardt
@ 2023-01-31 20:27     ` Michael Niedermayer
  2023-01-31 20:40       ` Andreas Rheinhardt
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Niedermayer @ 2023-01-31 20:27 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1225 bytes --]

On Tue, Jan 31, 2023 at 12:21:24PM +0100, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > Fixes: OOM
> > Fixes: 54572/clusterfuzz-testcase-minimized-ffmpeg_dem_LAF_fuzzer-4974038870523904
> > 
> > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavformat/lafdec.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
> > index d02b479c4d..b78ec3649c 100644
> > --- a/libavformat/lafdec.c
> > +++ b/libavformat/lafdec.c
> > @@ -208,6 +208,8 @@ again:
> >          ret = avio_read(pb, s->data, st_count * st->codecpar->sample_rate * bpp);
> >          if (ret < 0)
> >              return ret;
> > +        if (ret != st_count * st->codecpar->sample_rate * bpp)
> > +            return AVERROR_INVALIDDATA;
> >      }
> >  
> >      st = ctx->streams[s->index];
> 
> ffio_read()

I assume you mean ffio_read_size(), will use that

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read
  2023-01-31 20:27     ` Michael Niedermayer
@ 2023-01-31 20:40       ` Andreas Rheinhardt
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Rheinhardt @ 2023-01-31 20:40 UTC (permalink / raw)
  To: ffmpeg-devel

Michael Niedermayer:
> On Tue, Jan 31, 2023 at 12:21:24PM +0100, Andreas Rheinhardt wrote:
>> Michael Niedermayer:
>>> Fixes: OOM
>>> Fixes: 54572/clusterfuzz-testcase-minimized-ffmpeg_dem_LAF_fuzzer-4974038870523904
>>>
>>> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>> ---
>>>  libavformat/lafdec.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
>>> index d02b479c4d..b78ec3649c 100644
>>> --- a/libavformat/lafdec.c
>>> +++ b/libavformat/lafdec.c
>>> @@ -208,6 +208,8 @@ again:
>>>          ret = avio_read(pb, s->data, st_count * st->codecpar->sample_rate * bpp);
>>>          if (ret < 0)
>>>              return ret;
>>> +        if (ret != st_count * st->codecpar->sample_rate * bpp)
>>> +            return AVERROR_INVALIDDATA;
>>>      }
>>>  
>>>      st = ctx->streams[s->index];
>>
>> ffio_read()
> 
> I assume you mean ffio_read_size(), will use that
> 

Yeah, I meant that. Sorry.

- Andreas

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data
  2023-01-31 11:25   ` Andreas Rheinhardt
@ 2023-01-31 20:43     ` Michael Niedermayer
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Niedermayer @ 2023-01-31 20:43 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1657 bytes --]

On Tue, Jan 31, 2023 at 12:25:25PM +0100, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > Fixes: memleak
> > 
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavformat/lafdec.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
> > index b78ec3649c..f6d2d5f235 100644
> > --- a/libavformat/lafdec.c
> > +++ b/libavformat/lafdec.c
> > @@ -253,6 +253,15 @@ again:
> >      return 0;
> >  }
> >  
> > +static int laf_read_close(AVFormatContext *ctx)
> > +{
> > +    LAFContext *s = ctx->priv_data;
> > +
> > +    av_freep(&s->data);
> > +
> > +    return 0;
> > +}
> > +
> >  static int laf_read_seek(AVFormatContext *ctx, int stream_index,
> >                           int64_t timestamp, int flags)
> >  {
> > @@ -270,6 +279,7 @@ const AVInputFormat ff_laf_demuxer = {
> >      .read_probe     = laf_probe,
> >      .read_header    = laf_read_header,
> >      .read_packet    = laf_read_packet,
> > +    .read_close     = laf_read_close,
> >      .read_seek      = laf_read_seek,
> >      .extensions     = "laf",
> >      .flags          = AVFMT_GENERIC_INDEX,
> 
> Needs the FF_FMT_INIT_CLEANUP flag, too (otherwise it will leak in case
> of avformat_new_stream() failure).

ok, will apply with this

thx

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK
  2023-01-30 23:45 [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read Michael Niedermayer
  2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data Michael Niedermayer
@ 2023-02-01 19:15 ` Michael Niedermayer
  2 siblings, 0 replies; 9+ messages in thread
From: Michael Niedermayer @ 2023-02-01 19:15 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 681 bytes --]

On Tue, Jan 31, 2023 at 12:45:25AM +0100, Michael Niedermayer wrote:
> The decoder is quite slow with max n taps
> Fixes: Timeout
> Fixes: 54063/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BONK_fuzzer-5087362407596032
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  tools/target_dec_fuzzer.c | 1 +
>  1 file changed, 1 insertion(+)

will apply

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is a danger to trust the dream we wish for rather than
the science we have, -- Dr. Kenneth Brown

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-02-01 19:15 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-30 23:45 [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer
2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 2/3] avformat/lafdec: Check if all data was read Michael Niedermayer
2023-01-31 11:21   ` Andreas Rheinhardt
2023-01-31 20:27     ` Michael Niedermayer
2023-01-31 20:40       ` Andreas Rheinhardt
2023-01-30 23:45 ` [FFmpeg-devel] [PATCH 3/3] libavformat/lafdec: free data Michael Niedermayer
2023-01-31 11:25   ` Andreas Rheinhardt
2023-01-31 20:43     ` Michael Niedermayer
2023-02-01 19:15 ` [FFmpeg-devel] [PATCH 1/3] tools/target_dec_fuzzer: Adjust threshold for BONK Michael Niedermayer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git