summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMontel Laurent <laurent.montel@kdab.com>2013-03-21 11:05:46 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-23 14:42:45 +0100
commit0450d8119028905823a393a5598eb350b8b5d377 (patch)
tree2a3de30f32f159745c0e628562a62183e1656867
parentfe52d1853ed48d7092c6835b1ce14eb7f21fe7f5 (diff)
Fix leak when fd != -1
Change-Id: I07bcf4b678460c86642436d1a69071f765ef63ca Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-rw-r--r--qmake/generators/makefiledeps.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp
index a4f3e665b3..898903a423 100644
--- a/qmake/generators/makefiledeps.cpp
+++ b/qmake/generators/makefiledeps.cpp
@@ -392,8 +392,11 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
#else
fd = open(sourceFile.local().toLatin1().constData(), O_RDONLY);
#endif
- if(fd == -1 || fstat(fd, &fst) || S_ISDIR(fst.st_mode))
+ if (fd == -1 || fstat(fd, &fst) || S_ISDIR(fst.st_mode)) {
+ if (fd != -1)
+ QT_CLOSE(fd);
return false;
+ }
buffer = getBuffer(fst.st_size);
for(int have_read = 0;
(have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len));
@@ -702,8 +705,11 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
#else
fd = open(fixPathForFile(file->file, true).local().toLocal8Bit().constData(), O_RDONLY);
#endif
- if(fd == -1 || fstat(fd, &fst) || S_ISDIR(fst.st_mode))
+ if (fd == -1 || fstat(fd, &fst) || S_ISDIR(fst.st_mode)) {
+ if (fd != -1)
+ QT_CLOSE(fd);
return false; //shouldn't happen
+ }
buffer = getBuffer(fst.st_size);
for(int have_read = buffer_len = 0;
(have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len));