[MPlayer-dev-eng] mplayer -pie and libbluray

Alexander Roalter alex at roalter.it
Wed Aug 15 11:51:29 CEST 2012


When I compile a recent mplayer (on x86_64) and start with br://1, I get 
a segfault in libbluray, because a strdup called there doesn't deliver a 
valid result.

Inserting a simple

printf("%s", strdup("hello"));

in bd_open from libbluray already causes a segfault.

if I compile mplayer with --disable-relocatable (or run the same 
libbluray with a mplayer version back from May), the strdup works 
without problem and I can play the BD.

- libbluray is compiled with PIC
- when running with valgrind, the strdup returns something correct, but 
mplayer bails out later with some undefined instruction exception. But 
it does this also with a working copy:


vex amd64->IR: unhandled instruction bytes: 0xF 0xF 0x6 0xBF 0xF 0xF
==16233== valgrind: Unrecognised instruction at address 0xb9667a.
==16233== Your program just tried to execute an instruction that Valgrind
==16233== did not recognise.  There are two possible reasons for this.
==16233== 1. Your program has a bug and erroneously jumped to a non-code
==16233==    location.  If you are running Memcheck and you just saw a
==16233==    warning about a bad jump, it's probably your program's fault.
==16233== 2. The instruction is legitimate but Valgrind doesn't handle it,
==16233==    i.e. it's Valgrind's fault.  If you think this is the case or
==16233==    you are not sure, please let us know and we'll try to fix it.
==16233== Either way, Valgrind will now raise a SIGILL signal which will
==16233== probably kill your program.



-- 
Cheers,
Alex


More information about the MPlayer-dev-eng mailing list