aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-14 15:39:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-14 15:39:46 +0000
commite1646e639a14f8430046dd424c1b745bea7f9840 (patch)
tree689ae31d573520360c9d957056883e5d611d1f50
parenta8167d58b9c1b3cd3860e4e55cb98e7460337a00 (diff)
downloadruby-e1646e639a14f8430046dd424c1b745bea7f9840.tar.gz
* array.c (ary_resize_capa): should not overwrite outside embedded
array. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--array.c3
-rw-r--r--version.h4
3 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 85a1067f2d..84ae88e555 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Feb 15 00:39:44 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * array.c (ary_resize_capa): should not overwrite outside embedded
+ array.
+
Sat Feb 14 20:18:19 2009 Tanaka Akira <akr@fsij.org>
* test/test_time.rb: extracted from lib/time.rb.
diff --git a/array.c b/array.c
index 35023f3209..5a6ceebea9 100644
--- a/array.c
+++ b/array.c
@@ -163,7 +163,8 @@ ary_resize_capa(VALUE ary, long capacity)
else {
if (!ARY_EMBED_P(ary)) {
long len = RARRAY_LEN(ary);
- VALUE *ptr = RARRAY_PTR(ary);
+ VALUE *ptr = RARRAY_PTR(ary);
+ if (len > capacity) len = capacity;
MEMCPY(RARRAY(ary)->as.ary, ptr, VALUE, len);
FL_SET_EMBED(ary);
ARY_SET_LEN(ary, len);
diff --git a/version.h b/version.h
index f031198f1b..141dd42a27 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.2"
-#define RUBY_RELEASE_DATE "2009-02-14"
+#define RUBY_RELEASE_DATE "2009-02-15"
#define RUBY_PATCHLEVEL -1
#define RUBY_BRANCH_NAME "trunk"
@@ -8,7 +8,7 @@
#define RUBY_VERSION_TEENY 1
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 2
-#define RUBY_RELEASE_DAY 14
+#define RUBY_RELEASE_DAY 15
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];