Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jan 2020 14:52:01 +0000 (UTC)
From:      Adriaan de Groot <adridg@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r521943 - in head/security/kleopatra: . files
Message-ID:  <202001031452.003Eq1dx003070@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adridg
Date: Fri Jan  3 14:52:01 2020
New Revision: 521943
URL: https://svnweb.freebsd.org/changeset/ports/521943

Log:
  Fix crashes in security/kleopatra
  
  Peculiar dynamic_cast<> behavior returns nullptr. Do the cast
  in two steps instead, which doesn't return nullptr.
  
  PR:		242670
  Reported by:	Gerard Seibert

Added:
  head/security/kleopatra/files/
  head/security/kleopatra/files/patch-D26393   (contents, props changed)
Modified:
  head/security/kleopatra/Makefile

Modified: head/security/kleopatra/Makefile
==============================================================================
--- head/security/kleopatra/Makefile	Fri Jan  3 14:33:18 2020	(r521942)
+++ head/security/kleopatra/Makefile	Fri Jan  3 14:52:01 2020	(r521943)
@@ -2,6 +2,7 @@
 
 PORTNAME=	kleopatra
 DISTVERSION=	${KDE_APPLICATIONS_VERSION}
+PORTREVISION=	1
 CATEGORIES=	security kde kde-applications
 
 MAINTAINER=	kde@FreeBSD.org

Added: head/security/kleopatra/files/patch-D26393
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/kleopatra/files/patch-D26393	Fri Jan  3 14:52:01 2020	(r521943)
@@ -0,0 +1,47 @@
+Submitted upstream as D26393, see also
+	https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242670
+	https://bugs.kde.org/show_bug.cgi?id=415168
+
+diff --git src/commands/command_p.h src/commands/command_p.h
+index d9acbaae..0a16161e 100644
+--- src/commands/command_p.h
++++ src/commands/command_p.h
+@@ -37,6 +37,7 @@
+ #include "view/keylistcontroller.h"
+ 
+ #include <Libkleo/KeyListModel>
++#include <Libkleo/KeyRearrangeColumnsProxyModel>
+ 
+ #include <KMessageBox>
+ 
+@@ -73,7 +74,7 @@ public:
+     }
+     KeyListModelInterface *model() const
+     {
+-        return view_ ? dynamic_cast<KeyListModelInterface *>(view_->model()) : nullptr;
++        return view_ ? dynamic_cast<KeyListModelInterface *>(dynamic_cast<KeyRearrangeColumnsProxyModel*>(view_->model())) : nullptr;
+     }
+     KeyListController *controller() const
+     {
+diff --git src/dialogs/lookupcertificatesdialog.cpp src/dialogs/lookupcertificatesdialog.cpp
+index 4f7b0246..313c4f9f 100644
+--- src/dialogs/lookupcertificatesdialog.cpp
++++ src/dialogs/lookupcertificatesdialog.cpp
+@@ -37,6 +37,8 @@
+ #include "ui_lookupcertificatesdialog.h"
+ 
+ #include <Libkleo/KeyListModel>
++#include <Libkleo/KeyRearrangeColumnsProxyModel>
++
+ #include <KConfigGroup>
+ #include <gpgme++/key.h>
+ 
+@@ -99,7 +101,7 @@ private:
+         if (!view) {
+             return std::vector<Key>();
+         }
+-        const auto *const model = dynamic_cast<KeyListModelInterface*>(view->model());
++        const auto *const model = dynamic_cast<KeyListModelInterface*>(dynamic_cast<KeyRearrangeColumnsProxyModel*>(view->model()));
+         Q_ASSERT(model);
+         const QItemSelectionModel *const sm = view->selectionModel();
+         Q_ASSERT(sm);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001031452.003Eq1dx003070>