[rubygems/rubygems] Allow spaces in file headers during octal check

https://github.com/rubygems/rubygems/commit/e9e25731d8
This commit is contained in:
Dmytro Shyrshov 2020-02-20 22:07:40 +02:00 коммит произвёл Hiroshi SHIBATA
Родитель 7574b836a9
Коммит 03fe7da186
2 изменённых файлов: 21 добавлений и 1 удалений

Просмотреть файл

@ -126,7 +126,8 @@ class Gem::Package::TarHeader
end
def self.strict_oct(str)
return str.oct if str =~ /\A[0-7]*\z/
return str.strip.oct if str.strip =~ /\A[0-7]*\z/
raise ArgumentError, "#{str.inspect} is not an octal string"
end

Просмотреть файл

@ -205,4 +205,23 @@ tjmather\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
assert_equal 6932, tar_header.checksum
end
def test_spaces_in_headers
stream = StringIO.new(
<<-EOF.dup.force_encoding('binary').split("\n").join
Access_Points_09202018.csv
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00100777 \x00 0 \x00 0 \x00 4357 13545040367 104501
\x000
EOF
)
tar_header = Gem::Package::TarHeader.from stream
assert_equal 0, tar_header.uid
assert_equal 0, tar_header.gid
end
end