mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
When sigaltstack is called with a stack size that's not smaller
than LINUX_MINSIGSTKSZ but smaller than MINSIGSTKSZ, cheat and pass MINSIGSTKSZ to the kernel. This is a workaround. Submitted through: nate
This commit is contained in:
parent
673fac08fd
commit
dee4ec33cf
4 changed files with 10 additions and 2 deletions
|
|
@ -157,6 +157,9 @@ struct linux_new_utsname {
|
|||
#define LINUX_SIGISMEMBER(set, sig) SIGISMEMBER(set, sig)
|
||||
#define LINUX_SIGADDSET(set, sig) SIGADDSET(set, sig)
|
||||
|
||||
/* sigaltstack */
|
||||
#define LINUX_MINSIGSTKSZ 2048
|
||||
|
||||
typedef void (*linux_handler_t)(int);
|
||||
typedef u_long linux_osigset_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -612,7 +612,8 @@ linux_sigaltstack(p, uap)
|
|||
|
||||
ss = stackgap_alloc(&sg, sizeof(stack_t));
|
||||
ss->ss_sp = lss.ss_sp;
|
||||
ss->ss_size = lss.ss_size;
|
||||
ss->ss_size = (lss.ss_size >= LINUX_MINSIGSTKSZ &&
|
||||
lss.ss_size < MINSIGSTKSZ) ? MINSIGSTKSZ : lss.ss_size;
|
||||
ss->ss_flags = lss.ss_flags;
|
||||
|
||||
oss = (uap->uoss != NULL)
|
||||
|
|
|
|||
|
|
@ -157,6 +157,9 @@ struct linux_new_utsname {
|
|||
#define LINUX_SIGISMEMBER(set, sig) SIGISMEMBER(set, sig)
|
||||
#define LINUX_SIGADDSET(set, sig) SIGADDSET(set, sig)
|
||||
|
||||
/* sigaltstack */
|
||||
#define LINUX_MINSIGSTKSZ 2048
|
||||
|
||||
typedef void (*linux_handler_t)(int);
|
||||
typedef u_long linux_osigset_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -612,7 +612,8 @@ linux_sigaltstack(p, uap)
|
|||
|
||||
ss = stackgap_alloc(&sg, sizeof(stack_t));
|
||||
ss->ss_sp = lss.ss_sp;
|
||||
ss->ss_size = lss.ss_size;
|
||||
ss->ss_size = (lss.ss_size >= LINUX_MINSIGSTKSZ &&
|
||||
lss.ss_size < MINSIGSTKSZ) ? MINSIGSTKSZ : lss.ss_size;
|
||||
ss->ss_flags = lss.ss_flags;
|
||||
|
||||
oss = (uap->uoss != NULL)
|
||||
|
|
|
|||
Loading…
Reference in a new issue