Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 9070

Show
Ignore:
Timestamp:
03/21/08 22:46:51 (7 months ago)
Author:
bitsweat
Message:

Merge [9069] from trunk: Fix an edge case with extra periods in Routing.normalize_paths. References #11337.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/2-0-stable/actionpack/lib/action_controller/routing.rb

    r8585 r9070  
    307307 
    308308          # eliminate .. paths where possible 
    309           re = %r{\w+[/\\]\.\.[/\\]} 
    310           path.gsub!(%r{\w+[/\\]\.\.[/\\]}, "") while path.match(re) 
     309          re = %r{[^/\\]+[/\\]\.\.[/\\]} 
     310          path.gsub!(re, "") while path.match(re) 
    311311          path 
    312312        end 
  • branches/2-0-stable/actionpack/test/controller/routing_test.rb

    r8406 r9070  
    21202120 
    21212121  def test_normalize_unix_paths 
    2122     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
     2122    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
    21232123    paths = ActionController::Routing.normalize_paths(load_paths) 
    2124     assert_equal %w(vendor/rails/railties/builtin/rails_info vendor/rails/actionpack/lib app/controllers app/helpers app/models lib .), paths 
     2124    assert_equal %w(vendor/rails/railties/builtin/rails_info vendor/rails/actionpack/lib app/controllers app/helpers app/models config .bar lib .), paths 
    21252125  end 
    21262126 
    21272127  def test_normalize_windows_paths 
    2128     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
     2128    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
    21292129    paths = ActionController::Routing.normalize_paths(load_paths) 
    2130     assert_equal %w(vendor\\rails\\railties\\builtin\\rails_info vendor\\rails\\actionpack\\lib app\\controllers app\\helpers app\\models lib .), paths 
     2130    assert_equal %w(vendor\\rails\\railties\\builtin\\rails_info vendor\\rails\\actionpack\\lib app\\controllers app\\helpers app\\models config .bar lib .), paths 
    21312131  end 
    21322132