From e1a2230e9ca654cdd2b4230060a304d792843914 Mon Sep 17 00:00:00 2001 From: Gergő Móricz Date: Sun, 17 Oct 2021 21:19:52 +0200 Subject: Add alignment wrapper to pthread_getattr_np. This fixes stack corruption when using pthread_getattr_np on hirsute (Ubuntu 21.04) and libc >=2.33 This should also fix #130. --- src/libtools/threads.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/libtools') diff --git a/src/libtools/threads.c b/src/libtools/threads.c index 81ccba3a..31052118 100755 --- a/src/libtools/threads.c +++ b/src/libtools/threads.c @@ -417,6 +417,11 @@ EXPORT int my_pthread_attr_setstackaddr(x64emu_t* emu, pthread_attr_t* attr, voi return pthread_attr_setstack(getAlignedAttr(attr), addr, size); //return pthread_attr_setstackaddr(getAlignedAttr(attr), addr); } +EXPORT int my_pthread_getattr_np(x64emu_t* emu, pthread_t thread_id, pthread_attr_t* attr) +{ + (void)emu; + return pthread_getattr_np(thread_id, getAlignedAttrWithInit(attr, 0)); +} #endif EXPORT int my_pthread_create(x64emu_t *emu, void* t, void* attr, void* start_routine, void* arg) -- cgit 1.4.1