From ee310fdc2a700465418599f002299f31bb5cecef Mon Sep 17 00:00:00 2001 From: Lucjan Suski Date: Tue, 21 Mar 2017 19:21:09 +0100 Subject: [PATCH] Avoid panics for empty or multibyte image usemap --- components/script/dom/htmlimageelement.rs | 5 +++++ tests/wpt/mozilla/meta/MANIFEST.json | 10 ++++++++++ .../tests/mozilla/htmlimageelement.html | 18 ++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 tests/wpt/mozilla/tests/mozilla/htmlimageelement.html diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 610b0a3fae0..860f19ccc47 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -422,6 +422,11 @@ impl HTMLImageElement { }; let value = usemap_attr.value(); + + if value.len() == 0 || !value.is_char_boundary(1) { + return None + } + let (first, last) = value.split_at(1); if first != "#" || last.len() == 0 { diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 5d7438c4e04..45bc12e411c 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -12884,6 +12884,12 @@ {} ] ], + "mozilla/htmlimageelement.html": [ + [ + "/_mozilla/mozilla/htmlimageelement.html", + {} + ] + ], "mozilla/htmllabel-activation.html": [ [ "/_mozilla/mozilla/htmllabel-activation.html", @@ -25381,6 +25387,10 @@ "54fe6bbc1a7a35ceb14a3bf33f81ebed55beaf72", "testharness" ], + "mozilla/htmlimageelement.html": [ + "f1857a8f413f444b34464f0a3bc6b46af13c1a5a", + "testharness" + ], "mozilla/htmllabel-activation.html": [ "2013b49684d0b861415a2e766d5d260906b1f3fb", "testharness" diff --git a/tests/wpt/mozilla/tests/mozilla/htmlimageelement.html b/tests/wpt/mozilla/tests/mozilla/htmlimageelement.html new file mode 100644 index 00000000000..fe0cf3e83c5 --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/htmlimageelement.html @@ -0,0 +1,18 @@ + + +HTMLImageElement usemap special cases + + + + +