ruby-changes:18628
From: nobu <ko1@a...>
Date: Tue, 25 Jan 2011 08:28:28 +0900 (JST)
Subject: [ruby-changes:18628] Ruby:r30652 (trunk): * string.c (rb_str_resize): get rid of out-of-bound access.
nobu 2011-01-25 08:28:22 +0900 (Tue, 25 Jan 2011) New Revision: 30652 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30652 Log: * string.c (rb_str_resize): get rid of out-of-bound access. Modified files: trunk/ChangeLog trunk/string.c Index: ChangeLog =================================================================== --- ChangeLog (revision 30651) +++ ChangeLog (revision 30652) @@ -1,3 +1,7 @@ +Tue Jan 25 08:28:19 2011 Nobuyoshi Nakada <nobu@r...> + + * string.c (rb_str_resize): get rid of out-of-bound access. + Tue Jan 25 07:48:22 2011 Kazuhiro NISHIYAMA <zn@m...> * test/ruby/test_thread.rb: remove unused variables. Index: string.c =================================================================== --- string.c (revision 30651) +++ string.c (revision 30652) @@ -1748,7 +1748,8 @@ else if (len <= RSTRING_EMBED_LEN_MAX) { char *ptr = RSTRING(str)->as.heap.ptr; STR_SET_EMBED(str); - if (slen > 0) MEMCPY(RSTRING(str)->as.ary, ptr, char, len); + if (slen > len) slen = len; + if (slen > 0) MEMCPY(RSTRING(str)->as.ary, ptr, char, slen); RSTRING(str)->as.ary[len] = '\0'; STR_SET_EMBED_LEN(str, len); if (independent) xfree(ptr); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/