diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-10-18 12:10:03 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-11-18 01:00:25 +0200 |
commit | 398cd3cc7dda375c2d21355057c11ecb4abeda70 (patch) | |
tree | 1136c70ec0ac512b5e68927a483cd0625157705c /ext | |
parent | 23f1fb066303838a0d045b5981fe3c4ad077399e (diff) | |
download | ruby-398cd3cc7dda375c2d21355057c11ecb4abeda70.tar.gz |
[ruby/etc] Remove taint support
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
Still untaint the tmpdir object on Ruby <2.7, as returning
a tainted string there could cause problems.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/etc/etc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 28761df8c1..3cf1ddada9 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -100,7 +100,7 @@ static VALUE safe_setup_str(const char *str) { if (str == 0) str = ""; - return rb_tainted_str_new2(str); + return rb_str_new2(str); } static VALUE @@ -219,7 +219,6 @@ etc_getpwnam(VALUE obj, VALUE nam) struct passwd *pwd; const char *p = StringValueCStr(nam); - rb_check_safe_obj(nam); pwd = getpwnam(p); if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %"PRIsVALUE, nam); return setup_passwd(pwd); @@ -463,7 +462,6 @@ etc_getgrnam(VALUE obj, VALUE nam) struct group *grp; const char *p = StringValueCStr(nam); - rb_check_safe_obj(nam); grp = getgrnam(p); if (grp == 0) rb_raise(rb_eArgError, "can't find group for %"PRIsVALUE, nam); return setup_group(grp); @@ -679,7 +677,10 @@ etc_systmpdir(VALUE _) } # endif #endif +#ifndef RB_PASS_KEYWORDS + /* untaint on Ruby < 2.7 */ FL_UNSET(tmpdir, FL_TAINT); +#endif return tmpdir; } |