about summary refs log tree commit diff stats
path: root/src/libtools/threads.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools/threads.c')
-rwxr-xr-xsrc/libtools/threads.c4
1 files changed, 3 insertions, 1 deletions
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)