From 68711f6ea7362bb2d2ae4d8e56a9928858db494f Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 15 Jul 2011 15:39:27 +0200 Subject: fix access to free()d memory the 'item' reference may become invalid inside the loop. this approach was chosen (instead of making 'item' a non-reference) to keep the code more in sync with creator (where the string type is more complex). Change-Id: I60a4b0654dc47c0e3466d43904c358eb7e3e64e2 Reviewed-By: Marius Storm-Olsen Reviewed-on: http://codereview.qt.nokia.com/1702 Reviewed-by: Marius Storm-Olsen --- qmake/project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index ff5957765a..cb4117bef4 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -2289,7 +2289,7 @@ QMakeProject::doProjectExpand(QString func, QList args_list, ret.prepend(item); foreach (const QString &dep, dependees[item]) { QSet &dset = dependencies[dep]; - dset.remove(item); + dset.remove(rootSet.at(i)); // *Don't* use 'item' - rootSet may have changed! if (dset.isEmpty()) rootSet << dep; } -- cgit v1.2.3