From 212967aefb55e0792a36e67a881b66c8bd871e9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9my=20Coutable?= <remy@rymai.me>
Date: Tue, 20 Dec 2016 09:45:37 +0100
Subject: [PATCH] Reject blank environment vcariables in Gitlab::Git::RevList
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Rémy Coutable <remy@rymai.me>
---
 lib/gitlab/git/rev_list.rb           | 4 ++--
 spec/lib/gitlab/git/rev_list_spec.rb | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/gitlab/git/rev_list.rb b/lib/gitlab/git/rev_list.rb
index 25e9d619697..79dd0cf7df2 100644
--- a/lib/gitlab/git/rev_list.rb
+++ b/lib/gitlab/git/rev_list.rb
@@ -22,7 +22,7 @@ module Gitlab
 
       def valid?
         environment_variables.all? do |(name, value)|
-          value.start_with?(project.repository.path_to_repo)
+          value.to_s.start_with?(project.repository.path_to_repo)
         end
       end
 
@@ -35,7 +35,7 @@ module Gitlab
       end
 
       def environment_variables
-        @environment_variables ||= env.slice(*ALLOWED_VARIABLES)
+        @environment_variables ||= env.slice(*ALLOWED_VARIABLES).compact
       end
     end
   end
diff --git a/spec/lib/gitlab/git/rev_list_spec.rb b/spec/lib/gitlab/git/rev_list_spec.rb
index 444639acbaa..1f9c987be0b 100644
--- a/spec/lib/gitlab/git/rev_list_spec.rb
+++ b/spec/lib/gitlab/git/rev_list_spec.rb
@@ -26,6 +26,13 @@ describe Gitlab::Git::RevList, lib: true do
 
           expect(rev_list).not_to be_valid
         end
+
+        it "ignores nil values" do
+          env = { var => nil }
+          rev_list = described_class.new('oldrev', 'newrev', project: project, env: env)
+
+          expect(rev_list).to be_valid
+        end
       end
     end
   end
-- 
GitLab