2015-03-17 21:16 GMT-03:00 Lubomir I. Ivanov <[email protected]>:

> On 18 March 2015 at 01:45, Marcos Cardinot <[email protected]> wrote:
> >
> > Hello folks,
> >
> > The current code in RulerItem2::settingsChanged() is dereferencing the
> null pointer 'profWidget'.
> > It can cause a segmentation fault.
> >
> >
>
> hi, there is no need for the braces { } around the single lined "if"
> condition.
> could you remove them and resend?
>

Hi, of course.
Is there a kind of code style doc somewhere?


> lubomir
> --
>
>
From 7b9c36e93951b9202790dc700ca1240e70173f01 Mon Sep 17 00:00:00 2001
From: Marcos Cardinot <[email protected]>
Date: Tue, 17 Mar 2015 20:35:11 -0300
Subject: [PATCH] RulerItem2::settingsChanged() - NULL pointer dereference

The current code is dereferencing the null pointer 'profWidget'.
It can cause a segmentation fault.

Signed-off-by: Marcos Cardinot <[email protected]>
---
 qt-ui/profile/ruleritem.cpp |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/qt-ui/profile/ruleritem.cpp b/qt-ui/profile/ruleritem.cpp
index ddd8f46..1c874be 100644
--- a/qt-ui/profile/ruleritem.cpp
+++ b/qt-ui/profile/ruleritem.cpp
@@ -81,9 +81,15 @@ RulerItem2::RulerItem2() : source(new RulerNodeItem2()),
 void RulerItem2::settingsChanged()
 {
 	ProfileWidget2 *profWidget = NULL;
	if (scene() && scene()->views().count())
 		profWidget = qobject_cast<ProfileWidget2 *>(scene()->views().first());
-	setVisible(profWidget->currentState == ProfileWidget2::PROFILE ? prefs.rulergraph : false);
+
+	if (profWidget && profWidget->currentState == ProfileWidget2::PROFILE)
+		setVisible(prefs.rulergraph);
+	else
+		setVisible(false);
 }
 
 void RulerItem2::recalculate()
-- 
1.7.9.5

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to