From 1979d9ae1f7e6c2f0d3016a40064bda0a64d09f1 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 18 Jun 2002 06:29:07 +0000 Subject: * parse.y (yylex): obsolete '?'; use '?\s', '?\n', etc, instead. * parse.y (yylex): no here document after a dot. * parse.y (yylex): should have set lex_state after '`'. * parse.y (yylex): should have set lex_state properly after tOP_ASGN. * bignum.c (rb_big2dbl): return canonical HUGE_VAL for infinity. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'string.c') diff --git a/string.c b/string.c index 8abce208bf..9894423f80 100644 --- a/string.c +++ b/string.c @@ -2991,11 +2991,16 @@ rb_str_crypt(str, salt) VALUE str, salt; { extern char *crypt(); + VALUE result; StringValue(salt); if (RSTRING(salt)->len < 2) rb_raise(rb_eArgError, "salt too short(need >=2 bytes)"); - return rb_tainted_str_new2(crypt(RSTRING(str)->ptr, RSTRING(salt)->ptr)); + + result = rb_str_new2(crypt(RSTRING(str)->ptr, RSTRING(salt)->ptr)); + OBJ_INFECT(result, str); + OBJ_INFECT(result, salt); + return result; } static VALUE -- cgit v1.2.3