1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-09-04 10:09:38 +02:00

Unescaped escaped commas in regex-based removeparam values

Related discussion:
- https://github.com/uBlockOrigin/uAssets/discussions/14683#discussioncomment-3559284
This commit is contained in:
Raymond Hill 2022-09-08 19:37:24 -04:00
parent 2fc5cd0a14
commit f806438de6
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -3427,6 +3427,8 @@ class FilterCompiler {
}
}
// https://github.com/uBlockOrigin/uAssets/discussions/14683#discussioncomment-3559284
// If the removeparam value is a regex, unescape escaped commas
extractTokenFromQuerypruneValue() {
const pattern = this.modifyValue;
if ( pattern === '*' || pattern.charCodeAt(0) === 0x7E /* '~' */ ) {
@ -3434,7 +3436,9 @@ class FilterCompiler {
}
const match = /^\/(.+)\/i?$/.exec(pattern);
if ( match !== null ) {
return this.extractTokenFromRegex(match[1]);
return this.extractTokenFromRegex(
match[1].replace(/(\{\d*)\\,/, '$1,')
);
}
if ( pattern.startsWith('|') ) {
return this.extractTokenFromRegex('\\b' + pattern.slice(1));