Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 86885
b: refs/heads/master
c: 86dffa4
h: refs/heads/master
i:
  86883: c58ae79
v: v3
  • Loading branch information
Shi Weihua authored and Tony Luck committed Mar 4, 2008
1 parent 150cc54 commit 58ce1fa
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d7a6c68a2f991b18e61ebfe0251ab42c054d9a1d
refs/heads/master: 86dffa4cd1a1d61fed68ab64c674d4094f2bdfe4
13 changes: 12 additions & 1 deletion trunk/arch/ia64/ia32/ia32_signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -766,8 +766,19 @@ get_sigframe (struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)

/* This is the X/Open sanctioned signal stack switching. */
if (ka->sa.sa_flags & SA_ONSTACK) {
if (!on_sig_stack(esp))
int onstack = sas_ss_flags(esp);

if (onstack == 0)
esp = current->sas_ss_sp + current->sas_ss_size;
else if (onstack == SS_ONSTACK) {
/*
* If we are on the alternate signal stack and would
* overflow it, don't. Return an always-bogus address
* instead so we will die with SIGSEGV.
*/
if (!likely(on_sig_stack(esp - frame_size)))
return (void __user *) -1L;
}
}
/* Legacy stack switching not supported */

Expand Down

0 comments on commit 58ce1fa

Please sign in to comment.