From 6c46d35a1ae22ad5eb06534daf854463861e07d7 Mon Sep 17 00:00:00 2001
From: Olivier SOLDANO <olivier.soldano@savoirfairelinux.com>
Date: Thu, 24 Aug 2017 10:54:55 -0400
Subject: [PATCH] Fix null pointer access in decorationRole

The validity on the contact method pointer was not checked
in the decorationRole getter in pixbufmanipulator,
hence sometimes leading to segfault.

Change-Id: I3b43381285511cae58f94d8023ca6ed3b76e85c7
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
---
 pixbufmanipulator.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pixbufmanipulator.cpp b/pixbufmanipulator.cpp
index ef33a9b..1e44a97 100644
--- a/pixbufmanipulator.cpp
+++ b/pixbufmanipulator.cpp
@@ -194,10 +194,16 @@ QVariant PixbufManipulator::decorationRole(const ContactMethod* cm)
     QImage photo;
     if (cm && cm->contact() && cm->contact()->photo().isValid())
         photo = cm->contact()->photo().value<QImage>();
-    else
+    else if (cm){
         photo = fallbackAvatar(imgSize_,
                                cm->uri().userinfo().at(0).toLatin1(),
                                cm->bestName().at(0).toUpper().toLatin1());
+    } else {
+        photo = fallbackAvatar(imgSize_,
+                               QString("?").at(0).toLatin1(),
+                               QString("?").at(0).toUpper().toLatin1());
+    }
+
     return QVariant::fromValue(scaleAndFrame(photo, imgSize_));
 }
 
-- 
GitLab