diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-06-26 11:18:44 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-06-26 11:18:44 +0200 |
| commit | 66bf32bafa3bd712493904919cc97aeff43493c4 (patch) | |
| tree | a604f7369ac27c097e2de56753942bb1a5a36a67 /src | |
| parent | aa42913eced86e91766e58d789d55f4309f0fde1 (diff) | |
| download | box64-66bf32bafa3bd712493904919cc97aeff43493c4.tar.gz box64-66bf32bafa3bd712493904919cc97aeff43493c4.zip | |
Also changed the other wrapped __Xstat(64) function to accept a NULL buffer
Diffstat (limited to 'src')
| -rwxr-xr-x | src/wrapped/wrappedlibc.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index 7ecd21b4..a5f41035 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -994,8 +994,9 @@ EXPORT int my___fxstat(x64emu_t *emu, int vers, int fd, void* buf) { (void)emu; (void)vers; struct stat64 st; - int r = fstat64(fd, &st); - UnalignStat64(&st, buf); + int r = fstat64(fd, buf?&st:buf); + if(buf) + UnalignStat64(&st, buf); return r; } @@ -1003,9 +1004,9 @@ EXPORT int my___fxstat64(x64emu_t *emu, int vers, int fd, void* buf) { (void)emu; (void)vers; struct stat64 st; - int r = fstat64(fd, &st); - //int r = syscall(__NR_stat64, fd, &st); - UnalignStat64(&st, buf); + int r = fstat64(fd, buf?&st:buf); + if(buf) + UnalignStat64(&st, buf); return r; } @@ -1023,8 +1024,9 @@ EXPORT int my___xstat64(x64emu_t* emu, int v, void* path, void* buf) { (void)emu; (void)v; struct stat64 st; - int r = stat64((const char*)path, &st); - UnalignStat64(&st, buf); + int r = stat64((const char*)path, buf?&st:buf); + if(buf) + UnalignStat64(&st, buf); return r; } @@ -1032,8 +1034,9 @@ EXPORT int my___lxstat(x64emu_t* emu, int v, void* name, void* buf) { (void)emu; (void)v; struct stat64 st; - int r = lstat64((const char*)name, &st); - UnalignStat64(&st, buf); + int r = lstat64((const char*)name, buf?&st:buf); + if(buf) + UnalignStat64(&st, buf); return r; } @@ -1041,8 +1044,9 @@ EXPORT int my___lxstat64(x64emu_t* emu, int v, void* name, void* buf) { (void)emu; (void)v; struct stat64 st; - int r = lstat64((const char*)name, &st); - UnalignStat64(&st, buf); + int r = lstat64((const char*)name, buf?&st:buf); + if(buf) + UnalignStat64(&st, buf); return r; } |