Fix runIgnoreReplaces fall into infinity loop (#2151)

* Fix `runIgnoreReplaces` fall into infinity loop

The regex pattern was not checked for emptiness, which led to an endless
loop

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This commit is contained in:
fanway 2020-11-05 01:11:17 +03:00 committed by GitHub
parent 7d199c1329
commit f36c0fee97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View file

@ -44,6 +44,7 @@
- Bugfix: Fix Tab key not working in the Ctrl+K Quick Switcher (#2065)
- Bugfix: Fix bug preventing moderator actions when viewing a user card from the search window (#1089)
- Bugfix: Fix `:` emote completion menu ignoring emote capitalization (#1962)
- Bugfix: Fix a bug that caused `Ignore page` to fall into an infinity loop with an empty pattern and regex enabled (#2125)
## 2.2.0

View file

@ -763,6 +763,11 @@ void TwitchMessageBuilder::runIgnoreReplaces(
{
continue;
}
const auto &pattern = phrase.getPattern();
if (pattern.isEmpty())
{
continue;
}
if (phrase.isRegex())
{
const auto &regex = phrase.getRegex();
@ -835,11 +840,6 @@ void TwitchMessageBuilder::runIgnoreReplaces(
}
else
{
const auto &pattern = phrase.getPattern();
if (pattern.isEmpty())
{
continue;
}
int from = 0;
while ((from = this->originalMessage_.indexOf(
pattern, from, phrase.caseSensitivity())) != -1)