about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-04-24 15:14:06 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-04-24 15:14:06 +0200
commit50a9aef1799dbb8f2070903fc0eb6d7c512d7170 (patch)
tree8ae7ed9c781b773efebc3df79666c1a2cd750e31 /src
parent13bc7d17bf62ca5fbb512d8c985b04eb182854c9 (diff)
downloadbox64-50a9aef1799dbb8f2070903fc0eb6d7c512d7170.tar.gz
box64-50a9aef1799dbb8f2070903fc0eb6d7c512d7170.zip
Fixed a potential issue with stack overwritten on sigaction call
Diffstat (limited to 'src')
-rwxr-xr-xsrc/libtools/signals.c2
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