From 84dd413f22b9a3900ceaa33d63758f285908ecb1 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 18 Dec 2010 18:37:49 +0000 Subject: Restore rev param validation that was removed in r2840. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4542 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/repositories_controller.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'app/controllers/repositories_controller.rb') diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index b6dcc3173..03fb69bd6 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -196,7 +196,10 @@ class RepositoriesController < ApplicationController end end -private + private + + REV_PARAM_RE = %r{^[a-f0-9]*$}i + def find_repository @project = Project.find(params[:id]) @repository = @project.repository @@ -205,6 +208,12 @@ private @path ||= '' @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip @rev_to = params[:rev_to] + + unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE) + if @repository.branches.blank? + raise InvalidRevisionParam + end + end rescue ActiveRecord::RecordNotFound render_404 rescue InvalidRevisionParam -- cgit v1.2.3