diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-04-24 15:14:06 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-04-24 15:14:06 +0200 |
| commit | 50a9aef1799dbb8f2070903fc0eb6d7c512d7170 (patch) | |
| tree | 8ae7ed9c781b773efebc3df79666c1a2cd750e31 /src | |
| parent | 13bc7d17bf62ca5fbb512d8c985b04eb182854c9 (diff) | |
| download | box64-50a9aef1799dbb8f2070903fc0eb6d7c512d7170.tar.gz box64-50a9aef1799dbb8f2070903fc0eb6d7c512d7170.zip | |
Fixed a potential issue with stack overwritten on sigaction call
Diffstat (limited to 'src')
| -rwxr-xr-x | src/libtools/signals.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 697296b5..92f973b4 100755 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -1233,7 +1233,7 @@ int EXPORT my_syscall_rt_sigaction(x64emu_t* emu, int signum, const x64_sigactio ret = sigaction(signum, act?&newact:NULL, oldact?&old:NULL); if(oldact && ret==0) { oldact->sa_flags = old.sa_flags; - oldact->sa_mask = old.sa_mask; + memcpy(&oldact->sa_mask, &old.sa_mask, (sigsetsize>8)?8:sigsetsize); if(old.sa_flags & 0x04) oldact->_u._sa_sigaction = old.sa_sigaction; //TODO should wrap... else |