[FFmpeg-trac] #8838(avformat:new): concat demuxer fails on double dots in file name

FFmpeg trac at avcodec.org
Tue Aug 4 05:30:46 EEST 2020


#8838: concat demuxer fails on double dots in file name
-------------------------------------+-------------------------------------
             Reporter:  sgugler      |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:  avformat     |                  Version:  git-
             Keywords:  concat       |  master
  demuxer                            |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 '''SUMMARY'''
 The "concat" demuxer (`libavformat/concatdec.c`) fails to correctly parse
 a `file` directive in its input script, if the listed file has two
 consecutive dots in the filename.

 This appears to be a regression from 4.2 when it worked as expected.
 It is broken in 4.3 and in 20200803 builds.

 Observed on Windows 7 with 64-bit build from zeranoe.

 '''TO REPRODUCE'''

 No real avi file needs to exist, only the concat script. The error is
 observable before the avi it references is ever opened.

 {{{
 C:\Projects\video>echo file 'one..two.avi' > test.concat
 C:\Projects\video>ffmpeg -f concat -i test.concat test.avi
 }}}

 EXPECTED LOG: `Opening 'one..two.avi' for reading`

 OBSERVED LOG: `Opening 'wo.avi' for reading`

 Report from build 4.2
 {{{
 ffmpeg started on 2020-08-03 at 18:53:39
 Report written to "ffmpeg-20200803-185339.log"
 Command line:
 "C:\\e\\PortApps\\ffmpeg-4.2-win64-static\\bin\\ffmpeg" -hide_banner
 -report -v 9 -loglevel 99 -safe 0 -f concat -i test.concat test.avi
 Splitting the commandline.
 Reading option '-hide_banner' ... matched as option 'hide_banner' (do not
 show program banner) with argument '1'.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-safe' ... matched as AVOption 'safe' with argument '0'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'concat'.
 Reading option '-i' ... matched as input url with argument 'test.concat'.
 Reading option 'test.avi' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option hide_banner (do not show program banner) with argument 1.
 Applying option report (generate a report) with argument 1.
 Applying option v (set logging level) with argument 9.
 Applying option loglevel (set logging level) with argument 99.
 Successfully parsed a group of options.
 Parsing a group of options: input url test.concat.
 Applying option f (force format) with argument concat.
 Successfully parsed a group of options.
 Opening an input file: test.concat.
 [concat @ 0000000000ab9740] Opening 'test.concat' for reading
 [file @ 0000000000abafc0] Setting default whitelist 'file,crypto'
 [NULL @ 0000000000ac3940] Opening 'one..two.avi' for reading
 [concat @ 0000000000ab9740] Impossible to open 'one..two.avi'
 [AVIOContext @ 0000000000ac31c0] Statistics: 22 bytes read, 0 seeks
 test.concat: No such file or directory
 }}}

 Report from build 20200802
 {{{
 ffmpeg started on 2020-08-03 at 18:57:27
 Report written to "ffmpeg-20200803-185727.log"
 Log level: 99
 Command line:
 "C:\\e\\PortApps\\ffmpeg-20200802-b48397e-win64-static\\bin\\ffmpeg"
 -hide_banner -report -v 9 -loglevel 99 -safe 0 -f concat -i test.concat
 test.avi
 Splitting the commandline.
 Reading option '-hide_banner' ... matched as option 'hide_banner' (do not
 show program banner) with argument '1'.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-safe' ... matched as AVOption 'safe' with argument '0'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'concat'.
 Reading option '-i' ... matched as input url with argument 'test.concat'.
 Reading option 'test.avi' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option hide_banner (do not show program banner) with argument 1.
 Applying option report (generate a report) with argument 1.
 Applying option v (set logging level) with argument 9.
 Applying option loglevel (set logging level) with argument 99.
 Successfully parsed a group of options.
 Parsing a group of options: input url test.concat.
 Applying option f (force format) with argument concat.
 Successfully parsed a group of options.
 Opening an input file: test.concat.
 [concat @ 000000000066dfc0] Opening 'test.concat' for reading
 [file @ 000000000066f6c0] Setting default whitelist 'file,crypto,data'
 [NULL @ 0000000000678080] Opening 'wo.avi' for reading
 [concat @ 000000000066dfc0] Impossible to open 'wo.avi'
 [AVIOContext @ 0000000000677900] Statistics: 22 bytes read, 0 seeks
 test.concat: No such file or directory
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8838>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list