Review Request 126931: Fix crash when importing cmake tests whose arguments contain ')'

Milian Wolff mail at milianw.de
Mon Feb 1 12:13:12 UTC 2016


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126931/#review91847
-----------------------------------------------------------



can you add a unit test for this please?

- Milian Wolff


On Jan. 31, 2016, 12:06 a.m., Andrew Coles wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126931/
> -----------------------------------------------------------
> 
> (Updated Jan. 31, 2016, 12:06 a.m.)
> 
> 
> 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/20160201/b4c81d38/attachment.html>


More information about the KDevelop-devel mailing list