forked from qt-creator/qt-creator
CMakePM: Fix macro substitution recursion
One could have a "PATH": "$env{PATH}" entry that would bring Qt Creator into infinite recursion. Change-Id: If2402b8e8550dc5be2435f4ca040f91ec239a06c Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -101,7 +101,9 @@ static QString expandMacroEnv(const QString ¯oPrefix,
|
||||
do {
|
||||
done = true;
|
||||
for (qsizetype pos = 0; int len = findMacro(result, &pos, ¯oName);) {
|
||||
result.replace(pos, len, op(macroName));
|
||||
const QString replacement = op(macroName);
|
||||
// Prevent recursion by not allowing the same value to be reused
|
||||
result.replace(pos, len, replacement != value ? replacement : "");
|
||||
pos += macroName.length();
|
||||
done = false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user