[FFmpeg-devel] Memory leak using bitstream filters with shared libs
Sun Mar 9 04:42:46 CET 2008
Uoti Urpala <uoti.urpala at pp1.inet.fi> writes:
> On Sat, 2008-03-08 at 19:23 -0500, Rich Felker wrote:
>> It's actually an implementation bug since the C language requires that
>> the addresses match. I suspect it's binutils doing something stupid
>> due to -Bsymbolic. Anyway this sort of problem is common enough that
> It's binutils doing what -Bsymbolic is documented to do - binding
> references to global symbols to the definition within the shared
> library. If the main program is compiled without -fPIC then functions
> are normally bound to the main program's PLT entry (if one exists for
> the function in question), and that's what other code will use.
I can't see a reason why both bits of code can't use similar
indirection to pick up the real address of the function.
The code in question in utils.c is compiled to
whereas the relevant instruction from ffmpeg.c is
The address 0x4038a0 is a PLT entry with a jump instruction:
Why can't the movq instruction reference the GOT instead of using the
PLT entry? I realise this would prohibit lazy binding of this symbol,
but surely there's a way to handle that.
mans at mansr.com
More information about the ffmpeg-devel