summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2018-01-26 12:54:44 +0100
committerJacob Vosmaer <jacob@gitlab.com>2018-01-26 12:54:44 +0100
commit5d6176bd823f928376cbf48e4ae02feb535e57e6 (patch)
treefaf5bde084f7008810237bcbb78fe6b215671d8e
parentca165fd8d4fc1f20fb7b90356f65e9930d7fbf2c (diff)
downloadgitlab-ce-limit-never-zero.tar.gz
Be more strict in limit validationlimit-never-zero
-rw-r--r--lib/gitlab/git/repository.rb2
-rw-r--r--spec/lib/gitlab/git/repository_spec.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 65225d9d9ed..c422833d6a8 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -471,7 +471,7 @@ module Gitlab
options[:offset] ||= 0
limit = options[:limit]
- if limit == 0 || !limit
+ if limit == 0 || !limit.is_a?(Integer)
raise ArgumentError.new("invalid Repository#log limit: #{limit.inspect}")
end
diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb
index 36ca3980de9..65fa4781cc8 100644
--- a/spec/lib/gitlab/git/repository_spec.rb
+++ b/spec/lib/gitlab/git/repository_spec.rb
@@ -943,6 +943,16 @@ describe Gitlab::Git::Repository, seed_helper: true do
end
end
end
+
+ context 'limit validation' do
+ where(:limit) do
+ [0, nil, '', 'foo']
+ end
+
+ with_them do
+ it { expect { repository.log(limit: limit) }.to raise_error(ArgumentError) }
+ end
+ end
end
describe "#rugged_commits_between" do