Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#8838 closed defect (duplicate)

concat demuxer fails on double dots in file name

Reported by: Sean Gugler Owned by:
Priority: important Component: avformat
Version: git-master Keywords: concat
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

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

Change History (4)

comment:1 by Balling, 4 years ago

Resolution: invalid
Status: newclosed

Invalid

Last edited 4 years ago by Balling (previous) (diff)

comment:2 by Balling, 4 years ago

Resolution: invalid
Status: closedreopened

comment:3 by Carl Eugen Hoyos, 4 years ago

Keywords: demuxer removed
Resolution: duplicate
Status: reopenedclosed

Looks like a duplicate of ticket #8813.

comment:4 by Sean Gugler, 4 years ago

Confirmed, this has been fixed with #8813. Thank you!

Note: See TracTickets for help on using tickets.