Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#3526 closed defect (invalid)

Segfault when computing MD5

Reported by: ahthovaikied Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

I am getting a segfault when computing MD5, with a build from git master (commit fd2bcfc4d6967588168443849b9bc365c78bb9af).

Sample file is available here : http://www.auby.no/files/video_tests/h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv (4.3M)

$ gdb --args ./ffmpeg -i h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv -f md5 -GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./ffmpeg...(no debugging symbols found)...done.
(gdb) run
Starting program: /tmp/ffmpeg/ffmpeg -i h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv -f md5 -
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
ffmpeg version N-62058-gfd2bcfc Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr  3 2014 13:21:04 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu2)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-debug --cpu=core-avx-i
  WARNING: library configuration mismatch
  avutil      configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  avcodec     configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  avformat    configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  avdevice    configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  avfilter    configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  swscale     configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  swresample  configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  postproc    configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
  libavutil      52. 71.100 / 52. 66.100
  libavcodec     55. 56.107 / 55. 52.102
  libavformat    55. 36.101 / 55. 33.100
  libavdevice    55. 11.100 / 55. 10.100
  libavfilter     4.  3.100 /  4.  2.100
  libswscale      2.  6.100 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from 'h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv':
  Metadata:
    title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP 720p-=[champ_is_here]=-
    encoder         : libebml v1.0.0 + libmatroska v1.0.0
    creation_time   : 2011-01-07 07:42:53
  Duration: 00:00:57.61, start: 0.000000, bitrate: 613 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x528 [SAR 1:1 DAR 80:33], 25 fps, 25 tbr, 1k tbn, 47.95 tbc
    Metadata:
      title           : -=[champ_is_here]=-
    Stream #0:1(eng): Audio: aac, 48000 Hz, stereo, fltp
    Metadata:
      title           : -=[champ_is_here]=-
    Stream #0:2(hin): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
    Metadata:
      title           : -=[champ_is_here]=-
[New Thread 0x7fffed725700 (LWP 6455)]
[New Thread 0x7fffecf24700 (LWP 6456)]
[New Thread 0x7fffec723700 (LWP 6457)]
[New Thread 0x7fffebf22700 (LWP 6458)]
[New Thread 0x7fffeb721700 (LWP 6459)]
[New Thread 0x7fffeaf20700 (LWP 6460)]
[New Thread 0x7fffea71f700 (LWP 6461)]
[New Thread 0x7fffe9f1e700 (LWP 6462)]
[New Thread 0x7fffe971d700 (LWP 6463)]
[New Thread 0x7fffe8f1c700 (LWP 6464)]
[New Thread 0x7fffe871b700 (LWP 6465)]
[New Thread 0x7fffe7f1a700 (LWP 6466)]
[New Thread 0x7fffe7719700 (LWP 6467)]
[New Thread 0x7fffe6f18700 (LWP 6468)]
[New Thread 0x7fffe6717700 (LWP 6469)]
Output #0, md5, to 'pipe:':
  Metadata:
    title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP 720p-=[champ_is_here]=-
    encoder         : Lavf55.33.100
    Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x528 [SAR 1:1 DAR 80:33], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Metadata:
      title           : -=[champ_is_here]=-
    Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      title           : -=[champ_is_here]=-
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> rawvideo)
  Stream #0:1 -> #0:1 (aac -> pcm_s16le)
Press [q] to stop, [?] for help

Program received signal SIGSEGV, Segmentation fault.
0x0000000000408b37 in ?? ()
(gdb) bt
#0  0x0000000000408b37 in ?? ()
#1  0x00007ffff4db2ec5 in __libc_start_main (main=0x406fd0, argc=6, argv=0x7fffffffdf28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffdf18) at libc-start.c:287
#2  0x0000000000409c31 in ?? ()

I have another PC with a build from the same source, but with different CPU and compiler that works fine. See bug https://trac.ffmpeg.org/ticket/3524 for context.

Change History (6)

in reply to:  description comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: crash SIGSEGV removed
Resolution: invalid
Status: newclosed

Replying to ahthovaikied:

WARNING: library configuration mismatch

This means that your binary is broken and you cannot report a crash.
(There may indeed be a bug but you would have to point to the commit that introduces it.)

Please either:

  • compile without --disable-static --enable-shared (after running make distclean)
  • or set LD_LIBRARY_PATH to your build directory.

comment:2 by gjdfgh, 10 years ago

Resolution: invalid
Status: closedreopened

This means that your binary is broken and you cannot report a crash.

This is wrong. Ever heard of ABI compatibility?

in reply to:  2 comment:3 by Carl Eugen Hoyos, 10 years ago

Resolution: invalid
Status: reopenedclosed

Replying to gjdfgh:

This means that your binary is broken and you cannot report a crash.

This is wrong. Ever heard of ABI compatibility?

As in: Replacing current libraries with older versions?

comment:4 by gjdfgh, 10 years ago

Resolution: invalid
Status: closedreopened

In any case, the libraries should check for incompatible configurations.

Why are you closing this? A crash is a serious issue.

in reply to:  4 comment:5 by Carl Eugen Hoyos, 10 years ago

Resolution: invalid
Status: reopenedclosed

Replying to gjdfgh:

In any case, the libraries should check for incompatible configurations.

But this is not what this ticket is about (and I don't think we would make anybody happy by being more strict than necessary for testing).

Why are you closing this? A crash is a serious issue.

Because I can crash any dynamically linked ffmpeg binary by switching libraries against older versions.

comment:6 by ahthovaikied, 10 years ago

I confirm, without --disable-static --enable-shared, the crash is gone.

Note: See TracTickets for help on using tickets.