]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix an error in the ABI in rtld_bind_start(). When passing arguments to a
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>
Tue, 28 Dec 2010 22:31:59 +0000 (22:31 +0000)
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>
Tue, 28 Dec 2010 22:31:59 +0000 (22:31 +0000)
commit071a51cf9750489e15390d62579236acd2dcf87e
treefbb43926c6e2c678e797669e2bbfaf4a9b293cd1
parentacd7984f961a69d9e6d6d908f85737d2a9a08cb5
Fix an error in the ABI in rtld_bind_start(). When passing arguments to a
C function, the caller's stack frame must have room to store all of the
arguments to that function. While here, fix stack frame alignment issues.

Without this change, the compiler will save r3 and r4 into the caller's
stack frame before calling setjmp() in _rtld_bind(). These would then
overwrite arguments to the newly-bound function, causing eventual failures.
libexec/rtld-elf/powerpc64/rtld_start.S