summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-16 14:17:34 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-16 14:17:34 +0000
commitb7a0038505f797777969c248ed027b1481269cd8 (patch)
tree494d6fa7f4df254c98d06ce4cb68ceff753feedd
parent0ee11fc6a7605b1a6aeaa8799031447489b2feb3 (diff)
signal.c: get rid of heap corruption
* 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(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--signal.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 15e9e1c..752db52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Oct 16 23:17:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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 <akr@fsij.org>
* vm_backtrace.c (id2str): Fix a variable name.
diff --git a/signal.c b/signal.c
index fd7ee1b..63c79ff 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)