From 5453b6d4a7423e4c4b949bc27da03e6667f80293 Mon Sep 17 00:00:00 2001 From: yugui Date: Thu, 21 May 2009 14:47:02 +0000 Subject: merges r23359 from trunk into ruby_1_9_1. -- * array.c (rb_ary_sample): negative sample number is invalid. [ruby-core:23374] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index bc342b5867..3301621603 100644 --- a/array.c +++ b/array.c @@ -3302,8 +3302,9 @@ rb_ary_sample(int argc, VALUE *argv, VALUE ary) } rb_scan_args(argc, argv, "1", &nv); n = NUM2LONG(nv); - ptr = RARRAY_PTR(ary); - len = RARRAY_LEN(ary); + if (n < 0) rb_raise(rb_eArgError, "negative sample number"); + ptr = RARRAY_PTR(ary); + len = RARRAY_LEN(ary); if (n > len) n = len; switch (n) { case 0: return rb_ary_new2(0); -- cgit v1.2.3