[FFmpeg-trac] #10755(avformat:new): av_seek_frame on ogg with png stream abort()s

FFmpeg trac at avcodec.org
Fri Dec 22 19:02:12 EET 2023


#10755: av_seek_frame on ogg with png stream abort()s
--------------------------------+------------------------------------
             Reporter:  doeme   |                    Owner:  (none)
                 Type:  defect  |                   Status:  new
             Priority:  normal  |                Component:  avformat
              Version:  6.0     |               Resolution:
             Keywords:  ogg     |               Blocked By:
             Blocking:          |  Reproduced by developer:  0
Analyzed by developer:  0       |
--------------------------------+------------------------------------
Description changed by doeme:

Old description:

> I have a (potentially corrupt?) ogg file which contains an audio stream
> (vorbis) and a single static cover image (png).
> "avformat_find_stream_info" finds two streams, 0 => vorbis, 1 => png,
> however, if I try to seek in this file with "av_seek_frame" with
> stream_index = 1 (the png stream) libav abort()s due to stream_index >=
> nstreams in oggdec.c
> (https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/46775e64f8b34f5e4d09df8458654f9f50626c4b:/libavformat/oggdec.c#l937).
>
> How to reproduce:
>
> Build the attached sample program, and run it on the sample.
> Essentially, this only verifies that the stream with index 1 exists, and
> then tries to av_seek_frame() with all possible streams as time base,
> where the png stream 1 causes an abort()

New description:

 I have a (potentially corrupt?) ogg file which contains an audio stream
 (vorbis) and a single static cover image (png).
 "avformat_find_stream_info" finds two streams, 0 => vorbis, 1 => png,
 however, if I try to seek in this file with "av_seek_frame" with
 stream_index = 1 (the png stream) libav abort()s due to stream_index >=
 nstreams in oggdec.c
 (https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/46775e64f8b34f5e4d09df8458654f9f50626c4b:/libavformat/oggdec.c#l937).

 How to reproduce:

 Build the attached sample program, and run it on the sample.

 {{{
 gcc `pkg-config --cflags --libs libavformat libavcodec libavutil` ogg-png-
 stream.c -o ogg-png-stream
 ./ogg-png-stream bug-ogg-pngstream-avseek-abort.ogg
 }}}

 Essentially, this only verifies that the stream with index 1 exists, and
 then tries to av_seek_frame() with all possible streams as time base,
 where the png stream 1 causes an abort()

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10755#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list