about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-07-10 15:48:58 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-07-10 15:48:58 +0200
commitb4c389c374f2b952a021e940f5570c6d353624d6 (patch)
treef751c68e482a74ae966055182aec21883b7f6049 /src
parent44aeead296173b515bc15be7e9734ca112efdce2 (diff)
downloadbox64-b4c389c374f2b952a021e940f5570c6d353624d6.tar.gz
box64-b4c389c374f2b952a021e940f5570c6d353624d6.zip
Double the min size of TLS data to 8k (help Keep Talking and Nobody Explode, and probably other too)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64tls.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/emu/x64tls.c b/src/emu/x64tls.c
index 8a8d26ce..b6f51d97 100755
--- a/src/emu/x64tls.c
+++ b/src/emu/x64tls.c
@@ -188,7 +188,7 @@ static int sizeDTS(box64context_t* context)
 }
 static int sizeTLSData(int s)
 {
-    return (s+0xfff)&~0xfff;
+    return (s+0x1fff)&~0x1fff;
 }
 
 static tlsdatasize_t* setupTLSData(box64context_t* context)
@@ -238,6 +238,7 @@ void* resizeTLSData(box64context_t *context, void* oldptr)
         pthread_mutex_lock(&context->mutex_tls);
         tlsdatasize_t* oldata = (tlsdatasize_t*)oldptr;
         if(sizeTLSData(oldata->tlssize)!=sizeTLSData(context->tlssize) || (oldata->n_elfs/0xff)!=(context->elfsize/0xff)) {
+            printf_log(LOG_INFO, "Warning, resizing of TLS occured! size: %d->%d / n_elfs: %d->%d\n", sizeTLSData(oldata->tlssize), sizeTLSData(context->tlssize), 1+(oldata->n_elfs/0xff), 1+(context->elfsize/0xff));
             tlsdatasize_t *data = setupTLSData(context);
             // copy the relevent old part, in case something changed
             memcpy((void*)((uintptr_t)data->data-oldata->tlssize), (void*)((uintptr_t)oldata->data-oldata->tlssize), oldata->tlssize);