From 1b25a8f4374363d546d4a58f47c6fe00c3b3af07 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 2 Jan 2013 22:39:02 +0200
Subject: [PATCH] Improve Extract path

---
 lib/extracts_path.rb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/extracts_path.rb b/lib/extracts_path.rb
index 220e3d2271f..0b7a0d47caf 100644
--- a/lib/extracts_path.rb
+++ b/lib/extracts_path.rb
@@ -51,7 +51,7 @@ module ExtractsPath
     return pair unless @project
 
     # Remove project, actions and all other staff from path
-    input.gsub!("/#{@project.path_with_namespace}", "")
+    input.gsub!(/^\/#{Regexp.escape(@project.path_with_namespace)}/, "")
     input.gsub!(/^\/(tree|commits|blame|blob)\//, "") # remove actions
     input.gsub!(/\?.*$/, "") # remove stamps suffix
     input.gsub!(/.atom$/, "") # remove rss feed
@@ -108,7 +108,9 @@ module ExtractsPath
       request.format = :atom
     end
 
-    @ref, @path = extract_ref(request.fullpath)
+    path = request.fullpath.dup
+
+    @ref, @path = extract_ref(path)
 
     @id = File.join(@ref, @path)
 
-- 
GitLab