[PATCH 3/3] DownloadFromDCWidget: prevent possible leaks for log/dump files
Lubomir I. Ivanov
neolit123 at gmail.com
Tue Jan 7 06:41:21 UTC 2014
From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
If the 'logfile_name' and 'dumpfile_name' were NULL we can simply
strdup() them with a new value, but if there was a previous value
we need to free() first.
C99 6.7.8 allows us to keep said variables without the
explicit NULL initialiazation.
Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
qt-ui/downloadfromdivecomputer.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp
index b9eee91..81bc043 100644
--- a/qt-ui/downloadfromdivecomputer.cpp
+++ b/qt-ui/downloadfromdivecomputer.cpp
@@ -288,8 +288,11 @@ void DownloadFromDCWidget::pickLogFile()
filename = fi.absolutePath().append(QDir::separator()).append("subsurface.log");
logFile = QFileDialog::getSaveFileName(this, tr("Choose file for divecomputer download logfile"),
filename, tr("Log files (*.log)"));
- if (!logFile.isEmpty())
+ if (!logFile.isEmpty()) {
+ if (logfile_name)
+ free(logfile_name);
logfile_name = strdup(logFile.toUtf8().data());
+ }
}
void DownloadFromDCWidget::checkDumpFile(int state)
@@ -314,8 +317,11 @@ void DownloadFromDCWidget::pickDumpFile()
filename = fi.absolutePath().append(QDir::separator()).append("subsurface.bin");
dumpFile = QFileDialog::getSaveFileName(this, tr("Choose file for divecomputer binary dump file"),
filename, tr("Dump files (*.bin)"));
- if (!dumpFile.isEmpty())
+ if (!dumpFile.isEmpty()) {
+ if (dumpfile_name)
+ free(dumpfile_name);
dumpfile_name = strdup(dumpFile.toUtf8().data());
+ }
}
void DownloadFromDCWidget::reject()
--
1.7.11.msysgit.0
More information about the subsurface
mailing list