[vlc-commits] [Git][videolan/vlc][master] 3 commits: demux: ogg: fix leak on xiph_AppendHeaders error

Tristan Matthews (@tmatth) gitlab at videolan.org
Thu Nov 13 16:51:24 UTC 2025



Tristan Matthews pushed to branch master at VideoLAN / VLC


Commits:
c10dde07 by Tristan Matthews at 2025-11-13T16:02:22+00:00
demux: ogg: fix leak on xiph_AppendHeaders error

Fixes #29448
Fixes https://issues.oss-fuzz.com/issues/456426262

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/vlc

- - - - -
e18f719a by Tristan Matthews at 2025-11-13T16:02:22+00:00
codec: theora: fix leak on xiph_AppendHeaders error

- - - - -
1efee9cd by Tristan Matthews at 2025-11-13T16:02:22+00:00
codec: vorbis: fix leak on xiph_AppendHeaders error

- - - - -


3 changed files:

- modules/codec/theora.c
- modules/codec/vorbis.c
- modules/demux/ogg.c


Changes:

=====================================
modules/codec/theora.c
=====================================
@@ -787,6 +787,7 @@ static int OpenEncoder( vlc_object_t *p_this )
         if( xiph_AppendHeaders( &p_enc->fmt_out.i_extra, &p_enc->fmt_out.p_extra,
                                 header.bytes, header.packet ) )
         {
+            free(p_enc->fmt_out.p_extra);
             p_enc->fmt_out.i_extra = 0;
             p_enc->fmt_out.p_extra = NULL;
         }


=====================================
modules/codec/vorbis.c
=====================================
@@ -857,6 +857,7 @@ static int OpenEncoder( vlc_object_t *p_this )
         if( xiph_AppendHeaders( &p_enc->fmt_out.i_extra, &p_enc->fmt_out.p_extra,
                                 header[i].bytes, header[i].packet ) )
         {
+            free(p_enc->fmt_out.p_extra);
             p_enc->fmt_out.i_extra = 0;
             p_enc->fmt_out.p_extra = NULL;
         }


=====================================
modules/demux/ogg.c
=====================================
@@ -1413,6 +1413,7 @@ static void Ogg_DecodePacket( demux_t *p_demux,
         else if( xiph_AppendHeaders( &p_stream->i_headers, &p_stream->p_headers,
                                      p_oggpacket->bytes, p_oggpacket->packet ) )
         {
+            free(p_stream->p_headers);
             p_stream->i_headers = 0;
             p_stream->p_headers = NULL;
         }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6956cb7184d10ab89d792f1e1b84ac7f0d585c7c...1efee9cd4463bc62e359cd5f43e1a560d4f3c292

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6956cb7184d10ab89d792f1e1b84ac7f0d585c7c...1efee9cd4463bc62e359cd5f43e1a560d4f3c292
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list