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) {