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