From 8f591c434d5de0a5cfdef9d88c929087a1f32ce1 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 4 Dec 2009 12:51:32 +0000 Subject: [PATCH] * marshal.c (marshal_load): should set taintness. [ruby-dev:39723] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@25995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ marshal.c | 1 + test/ruby/test_marshal.rb | 9 +++++++++ version.h | 6 +++--- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3a236ba07b..7c88af82c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 4 21:51:30 2009 Nobuyoshi Nakada + + * marshal.c (marshal_load): should set taintness. [ruby-dev:39723] + Thu Dec 3 22:42:09 2009 NAKAMURA, Hiroshi * test/stringio/test_stringio.rb: use 1.8 methods for easier backport. diff --git a/marshal.c b/marshal.c index beafff553b..005e88b50a 100644 --- a/marshal.c +++ b/marshal.c @@ -1472,6 +1472,7 @@ marshal_load(argc, argv) arg->symbols = st_init_numtable(); arg->data = st_init_numtable(); arg->proc = 0; + arg->taint = taint; major = r_byte(arg); minor = r_byte(arg); diff --git a/test/ruby/test_marshal.rb b/test/ruby/test_marshal.rb index 046c258b85..d40c9da4d4 100644 --- a/test/ruby/test_marshal.rb +++ b/test/ruby/test_marshal.rb @@ -99,4 +99,13 @@ class TestMarshal < Test::Unit::TestCase GC.start assert(true, '[ruby-dev:39425]') end + + def test_taint + x = Object.new + x.taint + s = Marshal.dump(x) + assert_equal(true, s.tainted?) + y = Marshal.load(s) + assert_equal(true, y.tainted?) + end end diff --git a/version.h b/version.h index cfbb43b339..48e396b1e7 100644 --- a/version.h +++ b/version.h @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.8" -#define RUBY_RELEASE_DATE "2009-12-03" +#define RUBY_RELEASE_DATE "2009-12-04" #define RUBY_VERSION_CODE 188 -#define RUBY_RELEASE_CODE 20091203 +#define RUBY_RELEASE_CODE 20091204 #define RUBY_PATCHLEVEL -1 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 8 #define RUBY_RELEASE_YEAR 2009 #define RUBY_RELEASE_MONTH 12 -#define RUBY_RELEASE_DAY 3 +#define RUBY_RELEASE_DAY 4 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[];