D14106: Move search line upper bound check to less generic function
Mariusz Glebocki
noreply at phabricator.kde.org
Sat Jul 14 01:09:05 BST 2018
mglb created this revision.
mglb added a reviewer: Konsole.
mglb added a project: Konsole.
mglb requested review of this revision.
REVISION SUMMARY
When there was at least one search attempt, search box is still opened,
and the screen and/or history is cleared, there is a high chance that
the line number remembered by the search is invalid. The line number is
used as the lines array index, so this can lead to overflow and crash.
This is at this moment fixed with a check in `copyLineToStream()`, which
is a generic function that happens to be used by search function and
where the line number is used. There still is an `assert` which is
triggered in debug builds.
The patch moves the check directly to a search function, where the line
number is initialized before first search.
TEST PLAN
You have to do the test in debug build - there is a hack in
`copyLineToStream()` which prevents crash, but `assert` before it
catches an error condition.
- Run `seq 5000`
- Open search box, search for `000`
- Clear screen/history
- Search up/down
Actual result: Crash
Expected result: Search should begin from last/first visible line
REPOSITORY
R319 Konsole
BRANCH
arc/move-search-line-upper-bound-check-to-less-generic-function (branched from master)
REVISION DETAIL
https://phabricator.kde.org/D14106
AFFECTED FILES
src/Screen.cpp
src/SessionController.cpp
To: mglb, #konsole
Cc: konsole-devel, herrold, ngraham, maximilianocuria, hindenburg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/konsole-devel/attachments/20180714/41ee0651/attachment-0001.html>
More information about the konsole-devel
mailing list