summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--vm_eval.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c66e5b2aff..8a5886765d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Nov 15 22:47:27 2010 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * vm_eval.c (rb_funcall): ensure va_end after va_init_list. Coverity
+ Scan found this bug.
+
Mon Nov 15 08:36:12 2010 Aaron Patterson <aaron@tenderlovemaking.com>
* lib/racc/parser.rb (do_parse, yyparse): using class eval to define
diff --git a/vm_eval.c b/vm_eval.c
index 05fd3faeeb..c67e54c5e0 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -619,11 +619,12 @@ rb_funcall(VALUE recv, ID mid, int n, ...)
{
VALUE *argv;
va_list ar;
- va_init_list(ar, n);
if (n > 0) {
long i;
+ va_init_list(ar, n);
+
argv = ALLOCA_N(VALUE, n);
for (i = 0; i < n; i++) {