[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