From 4b9bc1b7662d6de2b65834d339aba801edaf971b Mon Sep 17 00:00:00 2001 From: Jermolene Date: Sat, 28 Jul 2018 16:22:38 +0100 Subject: [PATCH] Fix crash with malformed hexadecimal HTML entities Fixes #3373 --- core/modules/utils/utils.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index 2c06cd5c3..b24e240b1 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -497,15 +497,21 @@ exports.htmlEncode = function(s) { // Converts all HTML entities to their character equivalents exports.entityDecode = function(s) { var converter = String.fromCodePoint || String.fromCharCode, - e = s.substr(1,s.length-2); // Strip the & and the ; + e = s.substr(1,s.length-2), // Strip the & and the ; + c; if(e.charAt(0) === "#") { if(e.charAt(1) === "x" || e.charAt(1) === "X") { - return converter(parseInt(e.substr(2),16)); + c = parseInt(e.substr(2),16); } else { - return converter(parseInt(e.substr(1),10)); + c = parseInt(e.substr(1),10); + } + if(isNaN(c)) { + return s; + } else { + return converter(c); } } else { - var c = $tw.config.htmlEntities[e]; + c = $tw.config.htmlEntities[e]; if(c) { return converter(c); } else {