[PATCH] Fix crash on right click dive trip.
amit.k.chaudhuri at gmail.com
amit.k.chaudhuri at gmail.com
Wed May 8 10:33:27 PDT 2013
From: Amit Chaudhuri <amit.k.chaudhuri at gmail.com>
A null pointer dereference occured after right click on a dive trip
because updateDiveInfo was called with dive == -1 causing get_dive(int)
to return null. Wrap offending code with 'if (d)'
Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri at gmail.com>
---
qt-ui/maintab.cpp | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 89501fc..bf351b6 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -91,13 +91,15 @@ void MainTab::updateDiveInfo(int dive)
ui->rating->setCurrentStars(d->rating);
else
ui->rating->setCurrentStars(0);
- ui->maximumDepthText->setText(get_depth_string(d->maxdepth, TRUE));
- ui->averageDepthText->setText(get_depth_string(d->meandepth, TRUE));
- sacVal.mliter = d ? d->sac : 0;
- ui->sacText->setText(get_volume_string(sacVal, TRUE).append("/min"));
- ui->otuText->setText(QString("%1").arg( d ? d->otu : 0));
- ui->waterTemperatureText->setText(d ? get_temperature_string(d->watertemp, TRUE) : "");
- ui->airTemperatureText->setText(d ? get_temperature_string(d->airtemp, TRUE) : "");
+ if (d) {
+ ui->maximumDepthText->setText(get_depth_string(d->maxdepth, TRUE));
+ ui->averageDepthText->setText(get_depth_string(d->meandepth, TRUE));
+ sacVal.mliter = d ? d->sac : 0;
+ ui->sacText->setText(get_volume_string(sacVal, TRUE).append("/min"));
+ ui->otuText->setText(QString("%1").arg( d ? d->otu : 0));
+ ui->waterTemperatureText->setText(d ? get_temperature_string(d->watertemp, TRUE) : "");
+ ui->airTemperatureText->setText(d ? get_temperature_string(d->airtemp, TRUE) : "");
+ }
if (d && d->surface_pressure.mbar)
/* this is ALWAYS displayed in mbar */
ui->airPressureText->setText(QString("%1mbar").arg(d->surface_pressure.mbar));
--
1.7.10.4
More information about the subsurface
mailing list