Review Request 126931: Fix crash when importing cmake tests whose arguments contain ')'
Andrew Coles
andrew.i.coles at googlemail.com
Sun Jan 31 00:06:02 UTC 2016
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126931/
-----------------------------------------------------------
Review request for KDevelop.
Bugs: 358454
http://bugs.kde.org/show_bug.cgi?id=358454
Repository: kdevelop
Description
-------
In projectmanagers/cmake/cmakeimportjsonjob.cpp, there's a regular expression that matches 'add_test' lines from CTestTestfile.cmake files, but it stops reading at the first ) character:
`const QRegularExpression rx("add_test *\((.+?) (.*?)\)");`
If the argument list for the add_test line contains brackets, for instance:
add_test(some-test "/some/path" "(foo)" "bar")
...then this causes a segfault a few lines further down - the second rx capture is not a well-formed argument list.
This patch changes the regexp to only stop when ) is at the end of the line:
`const QRegularExpression rx("add_test *\((.+?) (.*?)\) *$");`
It also allows for spaces between the ')' and the end of the line, to be consistent with allowing extra spacing earlier on after add_test. I'm not sure if this matters in practice but is harmless enough.
Diffs
-----
projectmanagers/cmake/cmakeimportjsonjob.cpp 0502be7
Diff: https://git.reviewboard.kde.org/r/126931/diff/
Testing
-------
It can now import CTestTestfile.cmake files from my projects without crashing. I haven't tested it with other people's cmake build trees.
Thanks,
Andrew Coles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20160131/da9f316a/attachment.html>
More information about the KDevelop-devel
mailing list