From 72b60a2ab3b0937bf3b2e74af3486d38480beda6 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 25 Mar 2021 19:03:02 +0100 Subject: Fixed a potential issue with getAlignedMutex --- src/libtools/threads.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libtools') diff --git a/src/libtools/threads.c b/src/libtools/threads.c index dc6ce1cd..2a69a278 100755 --- a/src/libtools/threads.c +++ b/src/libtools/threads.c @@ -679,7 +679,9 @@ pthread_mutex_t* getAlignedMutex(pthread_mutex_t* m) int r; k = kh_put(mutex, unaligned_mutex, (uintptr_t)m, &r); pthread_mutex_t* ret = kh_value(unaligned_mutex, k) = (pthread_mutex_t*)calloc(1, sizeof(pthread_mutex_t)); - memcpy(ret, m, sizeof(pthread_mutex_t)); // probably need some magic here on ARM64 to convert x86_64 mutex structure + size_t sz = sizeof(pthread_mutex_t); + if(sz>40) sz = 40; // 40 is sizeof(pthread_mutex_t) on x86_64 + memcpy(ret, m, sz); // probably need some magic here on ARM64 to convert x86_64 mutex structure return ret; } EXPORT int my_pthread_mutex_destroy(pthread_mutex_t *m) -- cgit 1.4.1