diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-25 19:03:02 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-25 19:03:02 +0100 |
| commit | 72b60a2ab3b0937bf3b2e74af3486d38480beda6 (patch) | |
| tree | 6ae1b396c71bd02a4921138cd0c27b9f1541ffa1 /src/libtools | |
| parent | 40e6f460133f758500b070d1ba44f1b70d1e23ab (diff) | |
| download | box64-72b60a2ab3b0937bf3b2e74af3486d38480beda6.tar.gz box64-72b60a2ab3b0937bf3b2e74af3486d38480beda6.zip | |
Fixed a potential issue with getAlignedMutex
Diffstat (limited to 'src/libtools')
| -rwxr-xr-x | src/libtools/threads.c | 4 |
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) |