public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Search Repo:
Merge [9069] from trunk: Fix an edge case with extra periods in 
Routing.normalize_paths. References #11337.

git-svn-id: 
http://svn-commit.rubyonrails.org/rails/branches/2-0-stable@9070 
5ecf4fe2-1ee6-0310-87b1-e25e094e27de
jeremy (author)
Fri Mar 21 15:46:51 -0700 2008
commit  1c207dfbfcd799074309ef926ac0025b73a123e3
tree    af00d8d81e13bcced3d3a6fc9659fa7be75bebb9
parent  5a5b0b8b3be2e724520e0d1c6dea00c98d599165
...
306
307
308
309
310
 
 
311
312
313
...
306
307
308
 
 
309
310
311
312
313
0
@@ -306,8 +306,8 @@
0
             gsub(%r{(.)[\\/]$}, '\1') # drop final / or \ if path ends with it
0
 
0
           # eliminate .. paths where possible
0
- re = %r{\w+[/\\]\.\.[/\\]}
0
- path.gsub!(%r{\w+[/\\]\.\.[/\\]}, "") while path.match(re)
0
+ re = %r{[^/\\]+[/\\]\.\.[/\\]}
0
+ path.gsub!(re, "") while path.match(re)
0
           path
0
         end
0
 
...
2119
2120
2121
2122
 
2123
2124
 
2125
2126
2127
2128
 
2129
2130
 
2131
2132
2133
...
2119
2120
2121
 
2122
2123
 
2124
2125
2126
2127
 
2128
2129
 
2130
2131
2132
2133
0
@@ -2119,15 +2119,15 @@
0
   end
0
 
0
   def test_normalize_unix_paths
0
- load_paths = %w(. config/../app/controllers config/../app//helpers script/../config/../vendor/rails/actionpack/lib vendor/rails/railties/builtin/rails_info app/models lib script/../config/../foo/bar/../../app/models)
0
+ load_paths = %w(. config/../app/controllers config/../app//helpers script/../config/../vendor/rails/actionpack/lib vendor/rails/railties/builtin/rails_info app/models lib script/../config/../foo/bar/../../app/models .foo/../.bar foo.bar/../config)
0
     paths = ActionController::Routing.normalize_paths(load_paths)
0
- assert_equal %w(vendor/rails/railties/builtin/rails_info vendor/rails/actionpack/lib app/controllers app/helpers app/models lib .), paths
0
+ assert_equal %w(vendor/rails/railties/builtin/rails_info vendor/rails/actionpack/lib app/controllers app/helpers app/models config .bar lib .), paths
0
   end
0
 
0
   def test_normalize_windows_paths
0
- load_paths = %w(. config\\..\\app\\controllers config\\..\\app\\\\helpers script\\..\\config\\..\\vendor\\rails\\actionpack\\lib vendor\\rails\\railties\\builtin\\rails_info app\\models lib script\\..\\config\\..\\foo\\bar\\..\\..\\app\\models)
0
+ load_paths = %w(. config\\..\\app\\controllers config\\..\\app\\\\helpers script\\..\\config\\..\\vendor\\rails\\actionpack\\lib vendor\\rails\\railties\\builtin\\rails_info app\\models lib script\\..\\config\\..\\foo\\bar\\..\\..\\app\\models .foo\\..\\.bar foo.bar\\..\\config)
0
     paths = ActionController::Routing.normalize_paths(load_paths)
0
- assert_equal %w(vendor\\rails\\railties\\builtin\\rails_info vendor\\rails\\actionpack\\lib app\\controllers app\\helpers app\\models lib .), paths
0
+ assert_equal %w(vendor\\rails\\railties\\builtin\\rails_info vendor\\rails\\actionpack\\lib app\\controllers app\\helpers app\\models config .bar lib .), paths
0
   end
0
   
0
   def test_routing_helper_module

Comments

    No one has commented yet.