net-irc/konversation: Fix crash on extended joins

Package release cycle is slow.

Package-Manager: Portage-2.3.11, Repoman-2.3.3
This commit is contained in:
Andreas Sturmlechner
2017-10-12 21:44:22 +02:00
parent a2cca051f8
commit f5d15d8e9a
4 changed files with 182 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
From 783dc0f595ecf90e37225a57da0ffa2c030a470d Mon Sep 17 00:00:00 2001
From: Peter Simonsson <peter.simonsson@gmail.com>
Date: Sat, 10 Jun 2017 20:41:50 +0200
Subject: Fix crash in join handling in inputfilter
Make sure to check size of parameter list for extended join.
BUG:378854
---
src/irc/inputfilter.cpp | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/src/irc/inputfilter.cpp b/src/irc/inputfilter.cpp
index 53f3b2c..f273d30 100644
--- a/src/irc/inputfilter.cpp
+++ b/src/irc/inputfilter.cpp
@@ -575,21 +575,14 @@ void InputFilter::parseClientCommand(const QString &prefix, const QString &comma
QString account;
QString realName;
- if (!m_server->hasExtendedJoin())
- {
- channelName = trailing;
- // Sometimes JOIN comes without ":" in front of the channel name
- }
- else
+ channelName = parameterList[0];
+
+ if (m_server->hasExtendedJoin() && plHas(3))
{
- channelName = parameterList[0];
- account = parameterList[1];
- realName = parameterList[2];
+ if (parameterList[1] != "*")
+ account = parameterList[1];
- if (account == "*")
- {
- account = QString();
- }
+ realName = parameterList[2];
}
// Did we join the channel, or was it someone else?
--
cgit v0.11.2

View File

@@ -0,0 +1,25 @@
From 3263b47db2d0aab78d6a6fbc99682ac9b5ef2f2e Mon Sep 17 00:00:00 2001
From: Eike Hein <hein@kde.org>
Date: Wed, 21 Jun 2017 06:36:26 +0900
Subject: Don't commit on focus loss.
---
src/irc/channel.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/irc/channel.cpp b/src/irc/channel.cpp
index a431c80..a5c313e 100644
--- a/src/irc/channel.cpp
+++ b/src/irc/channel.cpp
@@ -292,7 +292,7 @@ Channel::Channel(QWidget* parent, const QString& _name) : ChatWindow(parent)
connect(nicknameCombobox,SIGNAL (activated(int)),this,SLOT(nicknameComboboxChanged()));
if(nicknameCombobox->lineEdit())
- connect(nicknameCombobox->lineEdit(), SIGNAL (editingFinished()),this,SLOT(nicknameComboboxChanged()));
+ connect(nicknameCombobox->lineEdit(), SIGNAL (returnPressed()),this,SLOT(nicknameComboboxChanged()));
connect(&userhostTimer,SIGNAL (timeout()),this,SLOT (autoUserhost()));
--
cgit v0.11.2

View File

@@ -0,0 +1,33 @@
From cb2c91f06bc9247520474372d163bd0520f4db42 Mon Sep 17 00:00:00 2001
From: Gun Park <mujjingun@gmail.com>
Date: Mon, 10 Jul 2017 16:59:28 +0900
Subject: Fix memory leak
Reviewers: hein
Reviewed By: hein
Differential Revision: https://phabricator.kde.org/D6580
---
src/viewer/viewcontainer.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/viewer/viewcontainer.cpp b/src/viewer/viewcontainer.cpp
index 31ff633..94d498e 100644
--- a/src/viewer/viewcontainer.cpp
+++ b/src/viewer/viewcontainer.cpp
@@ -2786,9 +2786,8 @@ void ViewContainer::showJoinChannelDialog()
if (dlg->exec() == QDialog::Accepted)
{
Server *server = Application::instance()->getConnectionManager()->getServerByConnectionId(dlg->connectionId());
- if (!server)
- return;
- server->sendJoinCommand(dlg->channel(), dlg->password());
+ if (server)
+ server->sendJoinCommand(dlg->channel(), dlg->password());
}
delete dlg;
}
--
cgit v0.11.2

View File

@@ -0,0 +1,77 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
KDE_HANDBOOK="forceoptional"
inherit kde5
DESCRIPTION="A user friendly IRC Client"
HOMEPAGE="https://www.kde.org/applications/internet/konversation/ https://konversation.kde.org"
SRC_URI="mirror://kde/stable/${PN}/${PV/_/-}/src/${P/_/-}.tar.xz"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~x86"
IUSE="+crypt"
DEPEND="
$(add_frameworks_dep karchive)
$(add_frameworks_dep kbookmarks)
$(add_frameworks_dep kcodecs)
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kcrash)
$(add_frameworks_dep kdbusaddons)
$(add_frameworks_dep kemoticons)
$(add_frameworks_dep kglobalaccel)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kidletime)
$(add_frameworks_dep kio)
$(add_frameworks_dep kitemviews)
$(add_frameworks_dep knotifications)
$(add_frameworks_dep knotifyconfig)
$(add_frameworks_dep kparts)
$(add_frameworks_dep kservice)
$(add_frameworks_dep ktextwidgets)
$(add_frameworks_dep kwallet)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kwindowsystem)
$(add_frameworks_dep kxmlgui)
$(add_qt_dep qtdbus)
$(add_qt_dep qtgui)
$(add_qt_dep qtnetwork)
$(add_qt_dep qtwidgets)
$(add_qt_dep qtxml)
media-libs/phonon[qt5(+)]
sys-devel/gettext
crypt? ( app-crypt/qca:2[qt5] )
"
RDEPEND="${DEPEND}
!net-irc/konversation:4
crypt? ( app-crypt/qca:2[ssl] )
"
PATCHES=(
"${FILESDIR}/${P}-extjoin-crash.patch"
"${FILESDIR}/${P}-memleak.patch"
"${FILESDIR}/${P}-focus.patch"
)
src_configure() {
local mycmakeargs=(
$(cmake-utils_use_find_package crypt Qca-qt5)
)
kde5_src_configure
}
src_install() {
kde5_src_install
# Bug 616162
insinto /etc/xdg
doins "${FILESDIR}"/konversationrc
}