[FFmpeg-trac] #10439(undetermined:new): Segmentation fault of ffprobe with the official static build for ts files with Debian 12

FFmpeg trac at avcodec.org
Wed Jun 28 18:22:46 EEST 2023


#10439: Segmentation fault of ffprobe with the official static build for ts files
with Debian 12
-------------------------------------+-------------------------------------
             Reporter:  Stéphane     |                     Type:  defect
  Diemer                             |
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  SEGFAULT     |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Environment:

 OS: Debian 12.
 Media: All .ts files.

 The problem was tested on many ts files (local files and files served on
 HTTPS).

 How to reproduce:

 {{{
 # docker run -it --rm "debian:bookworm" /bin/bash

 apt update
 apt install -y wget xz-utils
 cd /tmp
 # Get static build files
 wget 'https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-
 amd64-static.tar.xz'
 tar -xf ffmpeg-release-amd64-static.tar.xz
 # Get a ts file
 wget 'https://test-
 streams.mux.dev/x36xhzz/url_6/url_846/193039199_mp4_h264_aac_hq_7.ts'
 /tmp/ffmpeg-6.0-amd64-static/ffprobe 193039199_mp4_h264_aac_hq_7.ts
 }}}

 Result:

 {{{
 root at 951410b240f6:/tmp# /tmp/ffmpeg-6.0-amd64-static/ffprobe -v 9
 -loglevel 99 193039199_mp4_h264_aac_hq_7.ts
 ffprobe version 6.0-static https://johnvansickle.com/ffmpeg/  Copyright
 (c) 2007-2023 the FFmpeg developers
   built with gcc 8 (Debian 8.3.0-6)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp
 --enable-libgme --enable-gray --enable-libaom --enable-libfribidi
 --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264
 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid
 --enable-libzvbi --enable-libzimg
   libavutil      58.  2.100 / 58.  2.100
   libavcodec     60.  3.100 / 60.  3.100
   libavformat    60.  3.100 / 60.  3.100
   libavdevice    60.  1.100 / 60.  1.100
   libavfilter     9.  3.100 /  9.  3.100
   libswscale      7.  1.100 /  7.  1.100
   libswresample   4. 10.100 /  4. 10.100
   libpostproc    57.  1.100 / 57.  1.100
 [NULL @ 0x5975fc0] Opening '193039199_mp4_h264_aac_hq_7.ts' for reading
 [file @ 0x59767c0] Setting default whitelist 'file,crypto,data'
 Probing aac score:25 size:2048
 Probing mp3 score:1 size:2048
 Probing mpegts score:50 size:2048
 [mpegts @ 0x5975fc0] Format mpegts probed with size=2048 and score=50
 [mpegts @ 0x5975fc0] Probe: 8192, score: 44, dvhs_score: -2, fec_score: -2
 [mpegts @ 0x5975fc0] Filter: pid=0x11 type=1
 [mpegts @ 0x5975fc0] Filter: pid=0x0 type=1
 [mpegts @ 0x5975fc0] Filter: pid=0x12 type=1
 [mpegts @ 0x5975fc0] SDT:
 [mpegts @ 0x5975fc0] tag: 0x48 len=23
 Segmentation fault (core dumped)
 }}}

 The "-report" option does not provide any additional information.

 Debug information with strace:

 {{{
 root at 951410b240f6:/tmp# strace /tmp/ffmpeg-6.0-amd64-static/ffprobe
 193039199_mp4_h264_aac_hq_7.ts
 execve("/tmp/ffmpeg-6.0-amd64-static/ffprobe",
 ["/tmp/ffmpeg-6.0-amd64-static/ffp"..., "193039199_mp4_h264_aac_hq_7.ts"],
 0x7ffed83b0148 /* 8 vars */) = 0
 brk(NULL)                               = 0x6cef000
 brk(0x6cf02c0)                          = 0x6cf02c0
 arch_prctl(ARCH_SET_FS, 0x6cef980)      = 0
 uname({sysname="Linux", nodename="951410b240f6", ...}) = 0
 set_tid_address(0x6cefc50)              = 2843
 set_robust_list(0x6cefc60, 24)          = 0
 rt_sigaction(SIGRTMIN, {sa_handler=0x139db70, sa_mask=[],
 sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x139d150}, NULL, 8) = 0
 rt_sigaction(SIGRT_1, {sa_handler=0x139dc00, sa_mask=[],
 sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x139d150}, NULL,
 8) = 0
 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024,
 rlim_max=RLIM64_INFINITY}) = 0
 readlink("/proc/self/exe", "/tmp/ffmpeg-6.0-amd64-static/ffp"..., 4096) =
 36
 brk(0x6d112c0)                          = 0x6d112c0
 brk(0x6d12000)                          = 0x6d12000
 futex(0x54066ac, FUTEX_WAKE_PRIVATE, 2147483647) = 0
 futex(0x54066b8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
 brk(0x6d33000)                          = 0x6d33000
 getrandom("\x58", 1, GRND_NONBLOCK)     = 1
 stat("/etc/gnutls/config", 0x7ffd4bd01780) = -1 ENOENT (No such file or
 directory)
 brk(0x6d57000)                          = 0x6d57000
 brk(0x6d52000)                          = 0x6d52000
 ioctl(2, TCGETS, {c_iflag=ICRNL|IXON,
 c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|OPOST|ONLCR, c_cflag=B38400|CS8|CREAD,
 c_lflag=ISIG|ICANON|ECHO|ECHOE|ECHOK|IEXTEN|ECHOCTL|ECHOKE, ...}) = 0
 ioctl(2, TCGETS, {c_iflag=ICRNL|IXON,
 c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|OPOST|ONLCR, c_cflag=B38400|CS8|CREAD,
 c_lflag=ISIG|ICANON|ECHO|ECHOE|ECHOK|IEXTEN|ECHOCTL|ECHOKE, ...}) = 0
 write(2, "ffprobe version 6.0-static https"..., 61ffprobe version
 6.0-static https://johnvansickle.com/ffmpeg/ ) = 61
 write(2, " Copyright (c) 2007-2023 the FFm"..., 46 Copyright (c) 2007-2023
 the FFmpeg developers) = 46
 write(2, "\n", 1
 )                       = 1
 write(2, "  built with gcc 8 (Debian 8.3.0"..., 36  built with gcc 8
 (Debian 8.3.0-6)
 ) = 36
 write(2, "  configuration: --enable-gpl --"..., 757  configuration:
 --enable-gpl --enable-version3 --enable-static --disable-debug --disable-
 ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-
 fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme
 --enable-gray --enable-libaom --enable-libfribidi --enable-libass
 --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264
 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid
 --enable-libzvbi --enable-libzimg
 ) = 757
 write(2, "  libavutil      58.  2.100 / 58"..., 41  libavutil      58.
 2.100 / 58.  2.100
 ) = 41
 write(2, "  libavcodec     60.  3.100 / 60"..., 41  libavcodec     60.
 3.100 / 60.  3.100
 ) = 41
 write(2, "  libavformat    60.  3.100 / 60"..., 41  libavformat    60.
 3.100 / 60.  3.100
 ) = 41
 write(2, "  libavdevice    60.  1.100 / 60"..., 41  libavdevice    60.
 1.100 / 60.  1.100
 ) = 41
 write(2, "  libavfilter     9.  3.100 /  9"..., 41  libavfilter     9.
 3.100 /  9.  3.100
 ) = 41
 write(2, "  libswscale      7.  1.100 /  7"..., 41  libswscale      7.
 1.100 /  7.  1.100
 ) = 41
 write(2, "  libswresample   4. 10.100 /  4"..., 41  libswresample   4.
 10.100 /  4. 10.100
 ) = 41
 write(2, "  libpostproc    57.  1.100 / 57"..., 41  libpostproc    57.
 1.100 / 57.  1.100
 ) = 41
 openat(AT_FDCWD, "193039199_mp4_h264_aac_hq_7.ts", O_RDONLY) = 3
 fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
 fstat(3, {st_mode=S_IFREG|0644, st_size=905784, ...}) = 0
 lseek(3, 0, SEEK_SET)                   = 0
 read(3,
 "G@\21\20\0B\360*\0\1\301\0\0\0\1\377\0\1\374\200\31H\27\1\nlumberj"...,
 32768) = 32768
 brk(0x6d77000)                          = 0x6d77000
 futex(0x53f5be8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache",
 O_RDONLY) = 4
 fstat(4, {st_mode=S_IFREG|0644, st_size=27028, ...}) = 0
 mmap(NULL, 27028, PROT_READ, MAP_SHARED, 4, 0) = 0x7f03923d3000
 close(4)                                = 0
 futex(0x544da90, FUTEX_WAKE_PRIVATE, 2147483647) = 0
 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/ISO_6937.so",
 O_RDONLY|O_CLOEXEC) = 4
 read(4,
 "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832)
 = 832
 fstat(4, {st_mode=S_IFREG|0644, st_size=26872, ...}) = 0
 mmap(NULL, 28728, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) =
 0x7f03923cb000
 mmap(0x7f03923cc000, 8192, PROT_READ|PROT_EXEC,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7f03923cc000
 mmap(0x7f03923ce000, 12288, PROT_READ,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x3000) = 0x7f03923ce000
 mmap(0x7f03923d1000, 8192, PROT_READ|PROT_WRITE,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x5000) = 0x7f03923d1000
 close(4)                                = 0
 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
 fstat(4, {st_mode=S_IFREG|0644, st_size=4958, ...}) = 0
 mmap(NULL, 4958, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f03923c9000
 close(4)                                = 0
 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) =
 4
 read(4, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0Ps\2\0\0\0\0\0"...,
 832) = 832
 lseek(4, 64, SEEK_SET)                  = 64
 read(4,
 "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784) =
 784
 lseek(4, 848, SEEK_SET)                 = 848
 read(4,
 "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\200\0\300\4\0\0\0\1\0\0\0\0\0\0\0", 32)
 = 32
 lseek(4, 880, SEEK_SET)                 = 880
 read(4,
 "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\4\1\275\215\246\355\253>E9\235bW\23W\253"...,
 68) = 68
 fstat(4, {st_mode=S_IFREG|0755, st_size=1922136, ...}) = 0
 lseek(4, 64, SEEK_SET)                  = 64
 read(4,
 "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784) =
 784
 mmap(NULL, 1970000, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) =
 0x7f03921e8000
 mmap(0x7f039220e000, 1396736, PROT_READ|PROT_EXEC,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x26000) = 0x7f039220e000
 mmap(0x7f0392363000, 339968, PROT_READ,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x17b000) = 0x7f0392363000
 mmap(0x7f03923b6000, 24576, PROT_READ|PROT_WRITE,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1ce000) = 0x7f03923b6000
 mmap(0x7f03923bc000, 53072, PROT_READ|PROT_WRITE,
 MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f03923bc000
 close(4)                                = 0
 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2",
 O_RDONLY|O_CLOEXEC) = 4
 read(4,
 "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\251\1\0\0\0\0\0"...,
 832) = 832
 fstat(4, {st_mode=S_IFREG|0755, st_size=210968, ...}) = 0
 mmap(NULL, 209624, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) =
 0x7f03921b4000
 mmap(0x7f03921b5000, 151552, PROT_READ|PROT_EXEC,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7f03921b5000
 mmap(0x7f03921da000, 40960, PROT_READ,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x26000) = 0x7f03921da000
 mmap(0x7f03921e4000, 16384, PROT_READ|PROT_WRITE,
 MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x30000) = 0x7f03921e4000
 close(4)                                = 0
 mprotect(0x7f03921e4000, 8192, PROT_READ) = 0
 mprotect(0x7f03923b6000, 16384, PROT_READ) = 0
 mprotect(0x7f03923d1000, 4096, PROT_READ) = 0
 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x27020} ---
 +++ killed by SIGSEGV (core dumped) +++
 Segmentation fault
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10439>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list