diff --git a/ChangeLog b/ChangeLog index 15e9e1c7b5..752db52770 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 16 23:17:40 2014 Nobuyoshi Nakada + + * signal.c (rb_sigaltstack_size): double default size to get rid + of heap corruption by alternate stack overflow in SEGV handler. + typically happened at fprintf() in control_frame_dump(). + Thu Oct 16 22:43:12 2014 Tanaka Akira * vm_backtrace.c (id2str): Fix a variable name. diff --git a/signal.c b/signal.c index fd7ee1bc51..63c79ffcbd 100644 --- a/signal.c +++ b/signal.c @@ -535,7 +535,7 @@ int rb_sigaltstack_size(void) { /* XXX: BSD_vfprintf() uses >1500KiB stack and x86-64 need >5KiB stack. */ - int size = 8192; + int size = 16*1024; #ifdef MINSIGSTKSZ if (size < MINSIGSTKSZ)