diff options
author | negi0109 <negi0109.seg@gmail.com> | 2023-09-10 17:01:15 +0000 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-09-11 21:06:21 +0000 |
commit | 8bb61077ad02c2b57eb5727b7da8a7a4fff28ef3 (patch) | |
tree | 168fb485e310538e0923f51ab3a45da3f5ccc496 /lib | |
parent | 1ae5dd6f320da502e1b4a032ed9c17e03a9f344f (diff) |
[rubygems/rubygems] Fixed false positive SymlinkError in symbolic link directory
https://github.com/rubygems/rubygems/commit/58173ff2ea
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rubygems/package.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index ba05fadbaf..ee64798cbb 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -413,6 +413,8 @@ EOM # extracted. def extract_tar_gz(io, destination_dir, pattern = "*") # :nodoc: + real_destination_dir = File.realpath(destination_dir) + directories = [] symlinks = [] @@ -428,7 +430,7 @@ EOM real_destination = link_target.start_with?("/") ? link_target : File.expand_path(link_target, File.dirname(destination)) raise Gem::Package::SymlinkError.new(full_name, real_destination, destination_dir) unless - normalize_path(real_destination).start_with? normalize_path(destination_dir + "/") + normalize_path(real_destination).start_with? normalize_path(real_destination_dir + "/") symlinks << [full_name, link_target, destination, real_destination] end |