diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-01 17:41:41 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-01 17:41:41 +0100 |
| commit | f4a7a88167b691be5c9a6ed7f8859fb32d9cf9ec (patch) | |
| tree | 34c65781d791b04b33377fee23ef1455e0f68fe9 /src | |
| parent | 37a976831d00d386dd3130ca9809d339e8aa0205 (diff) | |
| download | box64-f4a7a88167b691be5c9a6ed7f8859fb32d9cf9ec.tar.gz box64-f4a7a88167b691be5c9a6ed7f8859fb32d9cf9ec.zip | |
Fixed some potentials segfault with wine apps (maybe other too)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/wrappedlibc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index b0e7dbd8..1d3fb9e9 100644 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -1615,7 +1615,8 @@ EXPORT int32_t my_open(x64emu_t* emu, void* pathname, int32_t flags, uint32_t mo int dummy = write(tmp, emu->context->fullpath, strlen(emu->context->fullpath)+1); (void)dummy; for (int i=1; i<emu->context->argc; ++i) - dummy = write(tmp, emu->context->argv[i], strlen(emu->context->argv[i])+1); + if(emu->context->argv[i]) + dummy = write(tmp, emu->context->argv[i], strlen(emu->context->argv[i])+1); lseek(tmp, 0, SEEK_SET); #endif return tmp; @@ -1692,7 +1693,8 @@ EXPORT int32_t my_open64(x64emu_t* emu, void* pathname, int32_t flags, uint32_t int dummy = write(tmp, emu->context->fullpath, strlen(emu->context->fullpath)+1); (void)dummy; for (int i=1; i<emu->context->argc; ++i) - dummy = write(tmp, emu->context->argv[i], strlen(emu->context->argv[i])+1); + if(emu->context->argv[i]) + dummy = write(tmp, emu->context->argv[i], strlen(emu->context->argv[i])+1); lseek(tmp, 0, SEEK_SET); #endif return tmp; |