* lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion

by nested repeat operators.  [ruby-core:33464]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-11-29 13:55:27 +00:00
Родитель f0a2b08b44
Коммит 839ee60687
3 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Mon Nov 29 22:55:24 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion
by nested repeat operators. [ruby-core:33464]
Mon Nov 29 22:53:13 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/Makefile.sub (scriptbin.mk): fix generated rules.

Просмотреть файл

@ -807,7 +807,7 @@ module URI
end.join('&')
end
WFKV_ = '(?:%\h\h|[^%#=;&]+)' # :nodoc:
WFKV_ = '(?:%\h\h|[^%#=;&])' # :nodoc:
# Decode URL-encoded form data from given +str+.
#

Просмотреть файл

@ -110,6 +110,8 @@ class TestCommon < Test::Unit::TestCase
assert_raise(ArgumentError){URI.decode_www_form("a=1&%=2")}
assert_raise(ArgumentError){URI.decode_www_form("a=1&b=%")}
assert_raise(ArgumentError){URI.decode_www_form("a&b")}
bug4098 = '[ruby-core:33464]'
assert_raise(ArgumentError, bug4098){URI.decode_www_form("a=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&b")}
end
end