diff options
author | hackademix | 2018-10-13 23:13:58 +0200 |
---|---|---|
committer | hackademix | 2018-10-14 23:18:31 +0200 |
commit | f9703b2bcb2e72de1822ec58aa78ea62b7947783 (patch) | |
tree | 9174b0e7bc83b44b178baba96f579ab8e04c4f81 /src/content | |
parent | ae5704dcf9983ad29cd96333e857a4ff5d762e3d (diff) | |
download | noscript-f9703b2bcb2e72de1822ec58aa78ea62b7947783.tar.gz noscript-f9703b2bcb2e72de1822ec58aa78ea62b7947783.tar.xz noscript-f9703b2bcb2e72de1822ec58aa78ea62b7947783.zip |
Fixed potential race condition in per-tab configuration cookie hack.
Diffstat (limited to 'src/content')
-rw-r--r-- | src/content/staticNS.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/content/staticNS.js b/src/content/staticNS.js index c746180..6002bfd 100644 --- a/src/content/staticNS.js +++ b/src/content/staticNS.js @@ -52,13 +52,14 @@ // (before any content can access it) if (this.config.MARKER = MARKER) { - let cookieRx = new RegExp(`(?:^|;\\s*)${MARKER}=([^;]*)`); + let cookieRx = new RegExp(`(?:^|;\\s*)(${MARKER}(?:_\\d+){2})=([^;]*)`); let match = document.cookie.match(cookieRx); if (match) { + let [cookie, cookieName, cookieValue] = match; // delete cookie NOW - document.cookie = `${MARKER}=;expires=${new Date(Date.now() - 31536000000).toGMTString()}`; + document.cookie = `${cookieName}=;expires=${new Date(Date.now() - 31536000000).toGMTString()}`; try { - this.config.tabInfo = JSON.parse(decodeURIComponent(match[1])); + this.config.tabInfo = JSON.parse(decodeURIComponent(cookieValue)); } catch (e) { error(e); } |