1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-05 11:37:01 +02:00

Allow the use of quotes in set-cookie scriptlet

Related discussion:
https://github.com/uBlockOrigin/uAssets/issues/20630#issuecomment-1807260357
This commit is contained in:
Raymond Hill 2023-11-12 19:26:05 -05:00
parent 30a01d8e84
commit 7c562d0c5c
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -853,8 +853,8 @@ function setLocalStorageItemFn(
const unquoted = match && match[2] || normalized;
if ( trustedValues.includes(unquoted) === false ) {
if ( /^\d+$/.test(unquoted) === false ) { return; }
const integer = parseInt(unquoted, 10);
if ( integer > 32767 ) { return; }
const n = parseInt(unquoted, 10);
if ( n > 32767 ) { return; }
}
}
@ -3418,16 +3418,17 @@ function setCookie(
'ok',
'on', 'off',
'true', 't', 'false', 'f',
'y', 'n',
'yes', 'no',
'yes', 'y', 'no', 'n',
'necessary', 'required',
];
if ( validValues.includes(value.toLowerCase()) === false ) {
if ( /^\d+$/.test(value) === false ) { return; }
const normalized = value.toLowerCase();
const match = /^("?)(.+)\1$/.exec(normalized);
const unquoted = match && match[2] || normalized;
if ( validValues.includes(unquoted) === false ) {
if ( /^\d+$/.test(unquoted) === false ) { return; }
const n = parseInt(value, 10);
if ( n > 15 ) { return; }
}
value = encodeURIComponent(value);
setCookieFn(
false,