diff --git a/win32/file.c b/win32/file.c index 5c34bd42b4..d92cec6a44 100644 --- a/win32/file.c +++ b/win32/file.c @@ -37,8 +37,6 @@ IS_ABSOLUTE_PATH_P(const WCHAR *path, size_t len) #define INVALID_CODE_PAGE 51932 #define PATH_BUFFER_SIZE MAX_PATH * 2 -#define insecure_obj_p(obj, level) ((level) > 0 && OBJ_TAINTED(obj)) - /* defined in win32/win32.c */ #define system_code_page rb_w32_filecp #define mbstr_to_wstr rb_w32_mbstr_to_wstr @@ -288,10 +286,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na wchar_t path_drive = L'\0', dir_drive = L'\0'; int ignore_dir = 0; rb_encoding *path_encoding; - int tainted = 0; - - /* tainted if path is tainted */ - tainted = OBJ_TAINTED(path); /* get path encoding */ if (NIL_P(dir)) { @@ -328,9 +322,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na /* expand '~' only if NOT rb_file_absolute_path() where `abs_mode` is 1 */ if (abs_mode == 0 && wpath_len > 0 && wpath_pos[0] == L'~' && (wpath_len == 1 || IS_DIR_SEPARATOR_P(wpath_pos[1]))) { - /* tainted if expanding '~' */ - tainted = 1; - whome = rb_w32_home_dir(); if (whome == NULL) { free(wpath); @@ -409,9 +400,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na if (abs_mode == 0 && wdir_len > 0 && wdir_pos[0] == L'~' && (wdir_len == 1 || IS_DIR_SEPARATOR_P(wdir_pos[1]))) { - /* tainted if expanding '~' */ - tainted = 1; - whome = rb_w32_home_dir(); if (whome == NULL) { free(wpath); @@ -516,10 +504,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na } if (wdir_len) { - /* tainted if dir is used and dir is tainted */ - if (!tainted && OBJ_TAINTED(dir)) - tainted = 1; - wcsncpy(buffer_pos, wdir_pos, wdir_len); buffer_pos += wdir_len; } @@ -545,10 +529,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na /* Ensure buffer is NULL terminated */ buffer_pos[0] = L'\0'; - /* tainted if path is relative */ - if (!tainted && !IS_ABSOLUTE_PATH_P(buffer, buffer_len)) - tainted = 1; - /* FIXME: Make this more robust */ /* Determine require buffer size */ size = GetFullPathNameW(buffer, PATH_BUFFER_SIZE, wfullpath_buffer, NULL); @@ -591,10 +571,6 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na rb_str_set_len(result, 0); result = append_wstr(result, wfullpath, size, path_cp, path_encoding); - /* makes the result object tainted if expanding tainted strings or returning modified path */ - if (tainted) - OBJ_TAINT(result); - /* TODO: better cleanup */ if (buffer) xfree(buffer);