diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-01-11 12:50:21 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-01-14 12:48:16 +0100 |
commit | ffee05c242c87e004054b48747287c3160d1c19a (patch) | |
tree | 94a86eca59fa68c7d6efc6ed215cb01703a7075a /lib/gitlab/ci/build | |
parent | f80d7a868e83f7cbba2d0c42ed9464552d9c7a0b (diff) | |
download | gitlab-ce-ffee05c242c87e004054b48747287c3160d1c19a.tar.gz |
Improve invalid build artifacts metadata path matcher
Diffstat (limited to 'lib/gitlab/ci/build')
-rw-r--r-- | lib/gitlab/ci/build/artifacts/metadata.rb | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/gitlab/ci/build/artifacts/metadata.rb b/lib/gitlab/ci/build/artifacts/metadata.rb index 91017f633a0..2b17712cdbe 100644 --- a/lib/gitlab/ci/build/artifacts/metadata.rb +++ b/lib/gitlab/ci/build/artifacts/metadata.rb @@ -43,6 +43,7 @@ module Gitlab def match_entries(gz) paths, metadata = [], [] match_pattern = %r{^#{Regexp.escape(@path)}[^/\s]*/?$} + invalid_pattern = %r{(^\.?\.?/)|(/\.?\.?/)} until gz.eof? do begin @@ -50,7 +51,7 @@ module Gitlab meta = read_string(gz) next unless path =~ match_pattern - next unless path_valid?(path) + next if path =~ invalid_pattern paths.push(path) metadata.push(JSON.parse(meta.chomp, symbolize_names: true)) @@ -62,10 +63,6 @@ module Gitlab [paths, metadata] end - def path_valid?(path) - !(path.start_with?('/') || path =~ %r{\.?\./}) - end - def read_version gzip do|gz| version_string = read_string(gz) |