You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2017/08/14 15:38:13 UTC
[03/31] mochiweb commit: updated refs/heads/upstream to 23dc119
Fix mochiweb_html missing charref error #167
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/commit/0f2fe442
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/tree/0f2fe442
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/diff/0f2fe442
Branch: refs/heads/upstream
Commit: 0f2fe4428aa0f00d0891177bd062533bb0c0ded8
Parents: d024b4a
Author: Bob Ippolito <bo...@redivi.com>
Authored: Sun Mar 13 13:57:03 2016 -0700
Committer: Bob Ippolito <bo...@redivi.com>
Committed: Sun Mar 13 13:57:03 2016 -0700
----------------------------------------------------------------------
.editorconfig | 17 +++++++++++++++++
CHANGES.md | 9 +++++++--
src/mochiweb.app.src | 2 +-
src/mochiweb_html.erl | 6 ++++--
test/mochiweb_html_tests.erl | 10 +++++++++-
5 files changed, 38 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/0f2fe442/.editorconfig
----------------------------------------------------------------------
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..d03550e
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+# EditorConfig file: http://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending every file
+[*]
+end_of_line = lf
+insert_final_newline = true
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+# 4 space indentation
+[*.{erl,src,hrl}]
+indent_style = space
+indent_size = 4
http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/0f2fe442/CHANGES.md
----------------------------------------------------------------------
diff --git a/CHANGES.md b/CHANGES.md
index af80a19..1b88f92 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+Version 2.13.1 released 2016-03-13
+
+* Fix mochiweb_html regression parsing invalid charref sequences
+ https://github.com/mochi/mochiweb/issues/167
+
Version 2.13.0 released 2016-02-08
* Support parsing of UTF-16 surrogate pairs encoded as character
@@ -114,7 +119,7 @@ Version 2.7.0 released 2013-08-01
call instead of an asynchronous cast
* `mochiweb_html:parse_tokens/1` (and `parse/1`) will now create a
html element to wrap documents that have a HTML5 doctype
- (`<!doctype html>`) but no html element
+ (`<!doctype html>`) but no html element
https://github.com/mochi/mochiweb/issues/110
Version 2.6.0 released 2013-04-15
@@ -133,7 +138,7 @@ Version 2.5.0 released 2013-03-04
(URL and Filename safe alphabet, see RFC 4648).
* Fix rebar.config in mochiwebapp_skel to use {branch, "master"}
https://github.com/mochi/mochiweb/issues/105
-
+
Version 2.4.2 released 2013-02-05
* Fixed issue in mochiweb_response introduced in v2.4.0
http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/0f2fe442/src/mochiweb.app.src
----------------------------------------------------------------------
diff --git a/src/mochiweb.app.src b/src/mochiweb.app.src
index dd049af..4f7f7dc 100644
--- a/src/mochiweb.app.src
+++ b/src/mochiweb.app.src
@@ -1,7 +1,7 @@
%% This is generated from src/mochiweb.app.src
{application, mochiweb,
[{description, "MochiMedia Web Server"},
- {vsn, "2.13.0"},
+ {vsn, "2.13.1"},
{modules, []},
{registered, []},
{env, []},
http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/0f2fe442/src/mochiweb_html.erl
----------------------------------------------------------------------
diff --git a/src/mochiweb_html.erl b/src/mochiweb_html.erl
index 3c5c4f9..70723af 100644
--- a/src/mochiweb_html.erl
+++ b/src/mochiweb_html.erl
@@ -640,7 +640,7 @@ find_gt(Bin, S=#decoder{offset=O}, HasSlash) ->
tokenize_charref(Bin, S=#decoder{offset=O}) ->
try
case tokenize_charref_raw(Bin, S, O) of
- {C1, S1=#decoder{offset=O1}} when C1 >= 16#D800 andalso C1 =< 16#DFFF ->
+ {C1, S1} when C1 >= 16#D800 andalso C1 =< 16#DFFF ->
%% Surrogate pair
tokeninize_charref_surrogate_pair(Bin, S1, C1);
{Unichar, S1} when is_integer(Unichar) ->
@@ -648,7 +648,9 @@ tokenize_charref(Bin, S=#decoder{offset=O}) ->
S1};
{Unichars, S1} when is_list(Unichars) ->
{{data, unicode:characters_to_binary(Unichars), false},
- S1}
+ S1};
+ {undefined, _} ->
+ throw(invalid_charref)
end
catch
throw:invalid_charref ->
http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/0f2fe442/test/mochiweb_html_tests.erl
----------------------------------------------------------------------
diff --git a/test/mochiweb_html_tests.erl b/test/mochiweb_html_tests.erl
index f67759a..0310b28 100644
--- a/test/mochiweb_html_tests.erl
+++ b/test/mochiweb_html_tests.erl
@@ -562,7 +562,15 @@ parse_amp_test_() ->
?_assertEqual(
{<<"html">>,[],
[{<<"body">>,[],[<<"&">>]}]},
- mochiweb_html:parse("<html><body>&</body></html>"))].
+ mochiweb_html:parse("<html><body>&</body></html>")),
+ ?_assertEqual(
+ {<<"html">>,[],
+ [{<<"body">>,[],[<<"&;">>]}]},
+ mochiweb_html:parse("<html><body>&;</body></html>")),
+ ?_assertEqual(
+ {<<"html">>,[],
+ [{<<"body">>,[],[<<"&MISSING;">>]}]},
+ mochiweb_html:parse("<html><body>&MISSING;</body></html>"))].
parse_unescaped_lt_test() ->
D1 = <<"<div> < < <a href=\"/\">Back</a></div>">>,