diff --git a/lib/gitlab/ci/build/artifacts/metadata.rb b/lib/gitlab/ci/build/artifacts/metadata.rb index 0c252c0bf308692ab458bb1c1f28610d1b05f1a7..e9ec8f1302cd504e6028051fc93ba4cc407399f2 100644 --- a/lib/gitlab/ci/build/artifacts/metadata.rb +++ b/lib/gitlab/ci/build/artifacts/metadata.rb @@ -10,8 +10,7 @@ module Gitlab attr_reader :file, :path, :full_version def initialize(file, path) - @file = file - @path = path.force_encoding('ASCII-8BIT') + @file, @path = file, path @full_version = read_version end @@ -36,7 +35,7 @@ module Gitlab end def to_path - Path.new(@path.dup.force_encoding('UTF-8'), *match!) + Path.new(@path, *match!) end private @@ -48,11 +47,11 @@ module Gitlab until gz.eof? do begin - path = read_string(gz) - meta = read_string(gz) + path = read_string(gz).force_encoding('UTF-8') + meta = read_string(gz).force_encoding('UTF-8') + next unless path.valid_encoding? && meta.valid_encoding? next unless path =~ match_pattern - next unless path.force_encoding('UTF-8').valid_encoding? next if path =~ invalid_pattern paths.push(path)