From a404ead89e2f7fd805b1f21609fd0517b317032e Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 9 Jan 2001 16:55:50 +0000 Subject: [PATCH] * string.c (rb_str_reverse_bang): forgot to call rb_str_modify(). * object.c (rb_obj_taint): check frozen status before modifying taint status. * object.c (rb_obj_untaint): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 11 +++++++++++ object.c | 6 ++++++ string.c | 1 + 3 files changed, 18 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3faef4be5e..07d6c3f372 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Wed Jan 10 01:50:45 2001 Yukihiro Matsumoto + + * string.c (rb_str_reverse_bang): forgot to call rb_str_modify(). + +Tue Jan 9 17:41:40 2001 Yukihiro Matsumoto + + * object.c (rb_obj_taint): check frozen status before modifying + taint status. + + * object.c (rb_obj_untaint): ditto. + Tue Jan 9 16:22:14 2001 Yukihiro Matsumoto * enum.c (enum_inject): new method. diff --git a/object.c b/object.c index 4e3d5dd856..86a246f1c3 100644 --- a/object.c +++ b/object.c @@ -286,6 +286,9 @@ rb_obj_taint(obj) VALUE obj; { rb_secure(4); + if (OBJ_FROZEN(obj)) { + rb_error_frozen("object"); + } OBJ_TAINT(obj); return obj; } @@ -295,6 +298,9 @@ rb_obj_untaint(obj) VALUE obj; { rb_secure(3); + if (OBJ_FROZEN(obj)) { + rb_error_frozen("object"); + } FL_UNSET(obj, FL_TAINT); return obj; } diff --git a/string.c b/string.c index 33afb982c3..9137b0fc55 100644 --- a/string.c +++ b/string.c @@ -1399,6 +1399,7 @@ rb_str_reverse_bang(str) char *s, *e; char c; + rb_str_modify(str); s = RSTRING(str)->ptr; e = s + RSTRING(str)->len - 1; while (s < e) {