From 94c8cfc3f3f0e777827cbdcea38eb5b772c27cfd Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Mon, 12 Feb 2018 08:18:24 -0500 Subject: [PATCH] fix #3506 --- src/js/dynamic-net-filtering.js | 2 +- src/js/messaging.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/js/dynamic-net-filtering.js b/src/js/dynamic-net-filtering.js index 25b599f1d..34bad0df4 100644 --- a/src/js/dynamic-net-filtering.js +++ b/src/js/dynamic-net-filtering.js @@ -76,7 +76,7 @@ var nameToActionMap = { // For performance purpose, as simple tests as possible var reHostnameVeryCoarse = /[g-z_-]/; var reIPv4VeryCoarse = /\.\d+$/; -var reBadHostname = /[^0-9a-z_.\[\]:-]/; +var reBadHostname = /[^0-9a-z_.\[\]:%-]/; // http://tools.ietf.org/html/rfc5952 // 4.3: "MUST be represented in lowercase" diff --git a/src/js/messaging.js b/src/js/messaging.js index 7ce4476c6..56f4e0345 100644 --- a/src/js/messaging.js +++ b/src/js/messaging.js @@ -869,6 +869,7 @@ var untangleRules = function(s) { var firewallRules = []; var urlRules = []; var switches = []; + var reIsSwitchRule = /^[a-z-]+:\s/; while ( lineBeg < textEnd ) { lineEnd = s.indexOf('\n', lineBeg); @@ -881,12 +882,12 @@ var untangleRules = function(s) { line = s.slice(lineBeg, lineEnd).trim(); lineBeg = lineEnd + 1; - if ( line.indexOf('://') !== -1 ) { - urlRules.push(line); - } else if ( line.indexOf(':') === -1 ) { - firewallRules.push(line); - } else { + if ( reIsSwitchRule.test(line) ) { switches.push(line); + } else if ( line.indexOf('://') !== -1 ) { + urlRules.push(line); + } else { + firewallRules.push(line); } }