[FFmpeg-devel] [PATCH] avformat/asfdec_f: Check amount of value read

Kacper Michajlow kasper93 at gmail.com
Mon Jul 28 02:10:57 EEST 2025


On Sun, 27 Jul 2025 at 22:57, Michael Niedermayer
<michael at niedermayer.cc> wrote:
>
> On Wed, Jul 23, 2025 at 05:51:35PM +0200, Kacper Michajlow wrote:
> > On Wed, 23 Jul 2025 at 10:43, Michael Niedermayer
> > <michael at niedermayer.cc> wrote:
> > >
> > > Fixes: use of uninitialized memory
> > > Fixes: 403675492/clusterfuzz-testcase-minimized-ffmpeg_dem_ASF_fuzzer-4754281823797248
> > >
> > > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > ---
> > >  libavformat/asfdec_f.c | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c
> > > index ea6e8ef4f3a..10f5dea57c3 100644
> > > --- a/libavformat/asfdec_f.c
> > > +++ b/libavformat/asfdec_f.c
> > > @@ -241,7 +241,9 @@ static void get_tag(AVFormatContext *s, const char *key, int type, int len, int
> > >          avio_get_str16le(s->pb, len, value, 2 * len + 1);
> > >          break;
> > >      case -1: // ASCI
> > > -        avio_read(s->pb, value, len);
> > > +       ;int ret = ffio_read_size(s->pb, value, len);
> >
> > stray ;
>
> no, try remove it :)
>
> libavformat/asfdec_f.c: In function ‘get_tag’:
> libavformat/asfdec_f.c:244:9: error: a label can only be part of a statement and a declaration is not a statement
>   244 |         int ret = ffio_read_size(s->pb, value, len);
>       |         ^~~

Ah, right. It's the first line after the case statement.

I generally put it immediately after : `case -1:;`. It was looking off
at the beginning of the line, but all good :)

- Kacper


More information about the ffmpeg-devel mailing list