#9906: flac parser asserts on flac file with large hole of zero bytes
-------------------------------------+-------------------------------------
             Reporter:  Mattias      |                     Type:  defect
  Wadman                             |
               Status:  new          |                 Priority:  normal
            Component:  avcodec      |                  Version:  git-
                                     |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Corrupt flac files with large hole of zero bytes causes libavcodec flac
 parser to assert.

 How to reproduce:
 {{{
 # create a 540MB test file with a large (> 0x20000000) zero bytes hole in
 the middle
 $ ffmpeg -y -f lavfi -i anoisesrc -t 4000 test.flac
 $ dd if=/dev/zero conv=notrunc of=test.flac oseek=20000 bs=1024
 count=540000

 # try decode it
 $ ffmpeg -i test.flac -f null -
 ...
 Assertion index > -0x20000000 failed at libavcodec/parser.c:165
 }}}

 Reproducible with 5.1.1 and master
 (b881d2db8892e88a625dfa4ac2d5b8ca53ab9595)

 The large negative error code seems to come here
 https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/flac_parser.c#L653.
 Based on the assert and comment in libavcodec/parser.c i get a feeling
 there should be some limit on position delta or pos should be signalled in
 some other way?
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9906>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to