summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jan Mulder <jlmulder@xs4all.nl>2017-07-28 21:32:47 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-28 15:16:46 -0700
commit7e39be436bea6983440a962da8375149166afa92 (patch)
tree87b89900cc9a6f73b018db3f87f2ac772b1337d4
parent69f8fc3c5b78eff762e469ae8d0ff9d62f5114ba (diff)
downloadsubsurface-7e39be436bea6983440a962da8375149166afa92.tar.gz
Fix possible memory corruption
A user reports a SIGSEGV that points to DownloadFromDCWidget::updateProgressBar() in relation to strlen()/strdup(), at end of download. Reading the code, as I can't reproduce the crash, it seems that the progress_bar_text is set to NULL and later strdup-ped. The man page is not fully clear on this, but setting it to the empty strings is much safer. Might fix: #507 Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
-rw-r--r--desktop-widgets/downloadfromdivecomputer.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp
index 4104d70f2..74501dcdb 100644
--- a/desktop-widgets/downloadfromdivecomputer.cpp
+++ b/desktop-widgets/downloadfromdivecomputer.cpp
@@ -108,7 +108,7 @@ void DownloadFromDCWidget::updateProgressBar()
// if we get the first actual text after the download is finished
// (which happens for example on the OSTC), then don't bother
if (!same_string(progress_bar_text, "") && IS_FP_SAME(progress_bar_fraction, 1.0))
- progress_bar_text = NULL;
+ progress_bar_text = "";
}
if (!same_string(progress_bar_text , "")) {
ui.progressBar->setFormat(progress_bar_text);