File tree Expand file tree Collapse file tree 3 files changed +8
-2
lines changed Expand file tree Collapse file tree 3 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -101,7 +101,7 @@ def self.default_dst
101101 def self . get ( identifier )
102102 instance = @@loaded_zones [ identifier ]
103103 unless instance
104- raise InvalidTimezoneIdentifier , 'Invalid identifier' if identifier !~ /^ [A-Za-z0-9\ +\- _]+(\/ [A-Za-z0-9\ +\- _]+)*$ /
104+ raise InvalidTimezoneIdentifier , 'Invalid identifier' if identifier !~ /\A [A-Za-z0-9+\- _]+(\/ [A-Za-z0-9+\- _]+)*\z /
105105 identifier = identifier . gsub ( /-/ , '__m__' ) . gsub ( /\+ / , '__p__' )
106106 begin
107107 # Use a temporary variable to avoid an rdoc warning
Original file line number Diff line number Diff line change 1+ raise 'This should never be executed'
Original file line number Diff line number Diff line change 11$:. unshift File . join ( File . dirname ( __FILE__ ) , ".." , "lib" )
2+ $:. unshift File . join ( File . dirname ( __FILE__ ) , "in_load_path" )
23require 'test/unit'
34require File . join ( File . dirname ( __FILE__ ) , 'test_utils' )
45require 'tzinfo'
@@ -97,7 +98,11 @@ def test_get_not_exist
9798 end
9899
99100 def test_get_invalid
100- assert_raises ( InvalidTimezoneIdentifier ) { Timezone . get ( '../Definitions/UTC' ) }
101+ assert_raises ( InvalidTimezoneIdentifier ) { Timezone . get ( '../definitions/UTC' ) }
102+ end
103+
104+ def test_get_directory_traversal
105+ assert_raises ( InvalidTimezoneIdentifier ) { Timezone . get ( "foo\n /../../../payload" ) }
101106 end
102107
103108 def test_get_nil
You can’t perform that action at this time.
0 commit comments