about summary refs log tree commit diff stats
path: root/src/libtools/threads.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-25 19:03:02 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-25 19:03:02 +0100
commit72b60a2ab3b0937bf3b2e74af3486d38480beda6 (patch)
tree6ae1b396c71bd02a4921138cd0c27b9f1541ffa1 /src/libtools/threads.c
parent40e6f460133f758500b070d1ba44f1b70d1e23ab (diff)
downloadbox64-72b60a2ab3b0937bf3b2e74af3486d38480beda6.tar.gz
box64-72b60a2ab3b0937bf3b2e74af3486d38480beda6.zip
Fixed a potential issue with getAlignedMutex
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)