Bug#498216: ffmpeg, mplayer (mipsel/loongson2f) stops with the error message "Segmentation fault." and fix patch

Reinhard Tartler siretart at tauware.de
Wed Sep 10 05:04:45 UTC 2008


tags 498216 moreinfo help
stop

I've been giving a bit more thought on this issue.

"刘世伟" <liushiwei at gmail.com> writes:

> (gdb) run
> Starting program: /usr/bin/ffmpeg
> [Thread debugging using libthread_db enabled]
> [New Thread 0x2aad0f40 (LWP 26315)]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x2aad0f40 (LWP 26315)]
> 0x2abe11e8 in avcodec_register_all () at
> /usr/src/ffmpeg/ffmpeg-debian-0.svn20080206/libavcodec/allcodecs.c:58
> warning: Source file is more recent than executable.
> 58          if (inited)

In any case, I have strong doubts that this is really the correct place
where the segfault happens. inited being static goes to bss, which is
initialized to 0 by the loader in the linux kernel. Even if he would
fail to initialize, it shouldn't segfault, but go on (and crash
elsewhere). The only thing I could imagine that could cause a crash here
is if the kernel failed to map the .bss segment, which would be pretty
fatal and make you very unlikely to even get so far.

Could you please recheck that the source does really match the
executable? NB: You need to apply the quilt patches before running gdb!

> fix this bug:
> --- ffmpeg-debian-0.svn20080206.orig/libavcodec/allcodecs.c
> +++ ffmpeg-debian-0.svn20080206/libavcodec/allcodecs.c
> @@ -53,7 +53,7 @@
>  */
>  void avcodec_register_all(void)
>  {
> -    static int inited;
> +    static int inited=0;
>
>    if (inited)
>        return;

As already indicated, this should no have any change to semantics of
that function and as such is a no-op. Can you please try recompiling
ffmpeg without this patch, read: without any modification? Please also
state what exact compiler version you are using.

> -- System Information:
> Debian Release: lenny/sid
>  APT prefers testing
>  APT policy: (500, 'testing')
> Architecture: mipsel (mips64)

lenny with a debian/etch kernel? Uh?

> Kernel: Linux 2.6.18.8-loongson2f-v1.02a (PREEMPT)

Debian does not ship such a kernel, nor is the loongson architecture
supported. Based on the information you've given, I'm inclined to
conclude that the problem is in that kernel. Please clarify.


> Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
> Shell: /bin/sh linked to /bin/bash
>
> Versions of packages ffmpeg depends on:
> ii  libavcodec51          0.svn20080206-12.1 ffmpeg codec library

There is no such version of ffmpeg. What changes (other than the patch
above) have been made to the package?
> ii  libavdevice52         0.svn20080206-12.1 ffmpeg device handling library
> ii  libavformat52         0.svn20080206-12.1 ffmpeg file format library
> ii  libavutil49           0.svn20080206-12.1 ffmpeg utility library
> ii  libc6                 2.7-13             GNU C Library: Shared libraries
> ii  libfreetype6          2.3.7-1            FreeType 2 font engine, shared lib
> ii  libimlib2             1.4.0-1.1          powerful image loading and renderi
> ii  libsdl1.2debian       1.2.13-2           Simple DirectMedia Layer
> ii  libswscale0           0.svn20080206-12.1 ffmpeg video scaling library
>
> ffmpeg recommends no packages.
>
> ffmpeg suggests no packages.
>
> -- no debconf information
>
-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4





More information about the pkg-multimedia-maintainers mailing list