From e568ddf99687f635abe931c1eff2b8b37be3bc54 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 30 Dec 2020 14:46:08 -0800 Subject: fix(op_crates/fetch): correct regexp for fetch header (#8927) Fix bug in regular expression and make the regular expression more strict. In a string passed to new RegExp(), '[\t\s]' is identical to '[ts]' and not `/[\t\s]/`. For that, the backslash needs to be escaped in the string. Futhermore, `\t` is the tab character and is included in the special regexp value `\s` so is unnecessary. That would reduce the RegExp to new RegExp(`^${value}\\s*;?`) but there's no point in matching 0 or more space characters followed by 0 or one semi-colons as that will match no matter what follows `value`. To make it more strict, require one of space, semicolon, or end-of-string after value. --- op_crates/fetch/26_fetch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'op_crates') diff --git a/op_crates/fetch/26_fetch.js b/op_crates/fetch/26_fetch.js index 0835e12a1..379c88e2f 100644 --- a/op_crates/fetch/26_fetch.js +++ b/op_crates/fetch/26_fetch.js @@ -138,7 +138,7 @@ } function hasHeaderValueOf(s, value) { - return new RegExp(`^${value}[\t\s]*;?`).test(s); + return new RegExp(`^${value}(?:[\\s;]|$)`).test(s); } function getHeaderValueParams(value) { -- cgit v1.2.3