summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-18 06:29:07 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-18 06:29:07 +0000
commit1979d9ae1f7e6c2f0d3016a40064bda0a64d09f1 (patch)
treecf97596c6b4d9627f133b3082bf2e8faec3f0388 /string.c
parent12c00312aaa4831f0ce820d9addce8f27c4f50b4 (diff)
* parse.y (yylex): obsolete '?<whitespace>'; 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
Diffstat (limited to 'string.c')
-rw-r--r--string.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/string.c b/string.c
index 8abce20..9894423 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