Correct signatures of several pthreads stubs.
Most important, use a correct signature for the __pthread_cleanup_push_imp() stub, which was incorrectly generated with two-args variant. The pthread_cleanup_info pointer was corrupted in the forwarded call to the real libthr implementation, visible on PowerPC and possibly ARM. [1] Found and tested by: Mark Millard <markmi@dsl-only.net> [1] Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
parent
3f7830a31e
commit
c89a3f0013
@ -279,10 +279,11 @@ STUB_FUNC2(pthread_kill, PJT_KILL, int, void *, int)
|
||||
STUB_FUNC2(pthread_setcancelstate, PJT_SETCANCELSTATE, int, int, void *)
|
||||
STUB_FUNC2(pthread_setcanceltype, PJT_SETCANCELTYPE, int, int, void *)
|
||||
STUB_FUNC(pthread_testcancel, PJT_TESTCANCEL, void)
|
||||
STUB_FUNC1(__pthread_cleanup_pop_imp, PJT_CLEANUP_POP_IMP, int, int)
|
||||
STUB_FUNC2(__pthread_cleanup_push_imp, PJT_CLEANUP_PUSH_IMP, void, void*, void *);
|
||||
STUB_FUNC1(_pthread_cancel_enter, PJT_CANCEL_ENTER, int, int)
|
||||
STUB_FUNC1(_pthread_cancel_leave, PJT_CANCEL_LEAVE, int, int)
|
||||
STUB_FUNC1(__pthread_cleanup_pop_imp, PJT_CLEANUP_POP_IMP, void, int)
|
||||
STUB_FUNC3(__pthread_cleanup_push_imp, PJT_CLEANUP_PUSH_IMP, void, void *,
|
||||
void *, void *);
|
||||
STUB_FUNC1(_pthread_cancel_enter, PJT_CANCEL_ENTER, void, int)
|
||||
STUB_FUNC1(_pthread_cancel_leave, PJT_CANCEL_LEAVE, void, int)
|
||||
|
||||
static int
|
||||
stub_zero(void)
|
||||
|
Loading…
Reference in New Issue
Block a user