diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-07-10 15:48:58 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-07-10 15:48:58 +0200 |
| commit | b4c389c374f2b952a021e940f5570c6d353624d6 (patch) | |
| tree | f751c68e482a74ae966055182aec21883b7f6049 /src | |
| parent | 44aeead296173b515bc15be7e9734ca112efdce2 (diff) | |
| download | box64-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-x | src/emu/x64tls.c | 3 |
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); |