summaryrefslogtreecommitdiff
path: root/ext/etc
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-10-18 12:10:03 -0700
committerJeremy Evans <code@jeremyevans.net>2019-11-18 01:00:25 +0200
commit398cd3cc7dda375c2d21355057c11ecb4abeda70 (patch)
tree1136c70ec0ac512b5e68927a483cd0625157705c /ext/etc
parent23f1fb066303838a0d045b5981fe3c4ad077399e (diff)
[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.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2476
Diffstat (limited to 'ext/etc')
-rw-r--r--ext/etc/etc.c7
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;
}