summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/build
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-01-11 12:50:21 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-01-14 12:48:16 +0100
commitffee05c242c87e004054b48747287c3160d1c19a (patch)
tree94a86eca59fa68c7d6efc6ed215cb01703a7075a /lib/gitlab/ci/build
parentf80d7a868e83f7cbba2d0c42ed9464552d9c7a0b (diff)
downloadgitlab-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.rb7
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)