aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--error.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1dd64c9ff8..bb17b14072 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Feb 26 05:35:43 2012 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * error.c (report_bug): use buf and snprintf to avoid consuming stack.
+ [ruby-dev:45272] [Bug #6058]
+
Sat Feb 25 17:41:19 2012 Tanaka Akira <akr@fsij.org>
* ext/dbm/extconf.rb (headers): try ambiguous headers at last.
diff --git a/error.c b/error.c
index c212c53b3f..bea4d50909 100644
--- a/error.c
+++ b/error.c
@@ -260,8 +260,11 @@ report_bug(const char *file, int line, const char *fmt, va_list args)
(ssize_t)fwrite(buf, 1, len, (out = stdout)) == (ssize_t)len) {
fputs("[BUG] ", out);
- vfprintf(out, fmt, args);
- fprintf(out, "\n%s\n\n", ruby_description);
+ vsnprintf(buf, 256, fmt, args);
+ fputs(buf, out);
+ snprintf(buf, 256, "\n%s\n\n", ruby_description);
+ fputs(buf, out);
+
rb_vm_bugreport();