https://bugs.kde.org/show_bug.cgi?id=358454
Milian Wolff <m...@milianw.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Latest Commit| |http://commits.kde.org/kdev | |elop/45a9d54799192a693e0713 | |26a8766450f5765e82 Status|CONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Milian Wolff <m...@milianw.de> --- Git commit 45a9d54799192a693e071326a8766450f5765e82 by Milian Wolff, on behalf of Andrew Coles. Committed on 14/02/2016 at 16:53. Pushed by mwolff into branch '5.0'. Fix crash when importing cmake tests whose arguments contain ')' 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. REVIEW: 126931 >From f45971369c78cc88b03a9b11067fa28f65b84ce2 Mon Sep 17 00:00:00 2001 From: Andrew Coles <andrew.i.co...@googlemail.com> Date: Wed, 3 Feb 2016 10:52:18 +0000 Subject: [PATCH] Bug fix, and unit test - no longer crash if test arguments contain parentheses M +6 -0 projectmanagers/cmake/CMakeLists.txt M +1 -1 projectmanagers/cmake/cmakeimportjsonjob.cpp M +1 -1 projectmanagers/cmake/tests/CMakeLists.txt A +5 -0 projectmanagers/cmake/tests/manual/parentheses_in_test_arguments/CMakeLists.txt A +2 -0 projectmanagers/cmake/tests/manual/parentheses_in_test_arguments/main.cpp [License: UNKNOWN] * A +3 -0 projectmanagers/cmake/tests/manual/parentheses_in_test_arguments/parentheses_in_test_arguments.kdev4 M +13 -0 projectmanagers/cmake/tests/test_cmakemanager.cpp M +1 -0 projectmanagers/cmake/tests/test_cmakemanager.h The files marked with a * at the end have a non valid license. Please read: http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page. http://commits.kde.org/kdevelop/45a9d54799192a693e071326a8766450f5765e82 -- You are receiving this mail because: You are watching all bug changes.