diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2014-01-07 16:41:21 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-01-09 09:29:40 +0800 |
commit | 7d56e404fdd09c1ec24b966eb00ba31c8f87ba70 (patch) | |
tree | 3a1e3d48a423dc50ba9bbc97b60fc0f034f7d907 | |
parent | 065221aac7ec7b762e642a0bf71b58cef7078e85 (diff) | |
download | subsurface-7d56e404fdd09c1ec24b966eb00ba31c8f87ba70.tar.gz |
DownloadFromDCWidget: prevent possible leaks for log/dump files
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@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/downloadfromdivecomputer.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index b9eee912a..81bc04309 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() |