Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-apps/kio-extras/, kde-apps/kio-extras/files/
Date: Sun, 30 May 2021 11:37:53
Message-Id: 1622374657.78070035d19deec11ddfe97230230f38b8818144.asturm@gentoo
1 commit: 78070035d19deec11ddfe97230230f38b8818144
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Sun May 30 11:05:04 2021 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Sun May 30 11:37:37 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78070035
7
8 kde-apps/kio-extras: thumbnail: Check shm size before writing to it
9
10 Upstream commit a288a7ba4283b2102a4602aa105072f33bc25645
11
12 See also: https://invent.kde.org/network/kio-extras/-/merge_requests/92
13
14 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=430862
15 Package-Manager: Portage-3.0.19, Repoman-3.0.3
16 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
17
18 ...o-extras-20.12.3-thumbnail-check-shm-size.patch | 44 ++++++++++
19 kde-apps/kio-extras/kio-extras-20.12.3-r1.ebuild | 95 ++++++++++++++++++++++
20 kde-apps/kio-extras/kio-extras-21.04.1-r1.ebuild | 95 ++++++++++++++++++++++
21 3 files changed, 234 insertions(+)
22
23 diff --git a/kde-apps/kio-extras/files/kio-extras-20.12.3-thumbnail-check-shm-size.patch b/kde-apps/kio-extras/files/kio-extras-20.12.3-thumbnail-check-shm-size.patch
24 new file mode 100644
25 index 00000000000..ef53e0fc3f6
26 --- /dev/null
27 +++ b/kde-apps/kio-extras/files/kio-extras-20.12.3-thumbnail-check-shm-size.patch
28 @@ -0,0 +1,44 @@
29 +From a288a7ba4283b2102a4602aa105072f33bc25645 Mon Sep 17 00:00:00 2001
30 +From: Fabian Vogt <fabian@×××××××××××.de>
31 +Date: Tue, 4 May 2021 20:52:59 +0200
32 +Subject: [PATCH] thumbnail: Check shm size before writing to it
33 +
34 +The SHM is created by the application, which might've done a different size
35 +calculation. Verify that the data fits instead of writing past the end and
36 +crashing.
37 +
38 +CCBUG: 430862
39 +
40 +
41 +(cherry picked from commit 112b67ae7895bdc4f32d851c09a4d6baecbb6666)
42 +---
43 + thumbnail/thumbnail.cpp | 9 +++++----
44 + 1 file changed, 5 insertions(+), 4 deletions(-)
45 +
46 +diff --git a/thumbnail/thumbnail.cpp b/thumbnail/thumbnail.cpp
47 +index 6b133323..afdb088e 100644
48 +--- a/thumbnail/thumbnail.cpp
49 ++++ b/thumbnail/thumbnail.cpp
50 +@@ -288,14 +288,15 @@ void ThumbnailProtocol::get(const QUrl &url)
51 + error(KIO::ERR_INTERNAL, i18n("Failed to attach to shared memory segment %1", shmid));
52 + return;
53 + }
54 +- if (img.width() * img.height() > m_width * m_height) {
55 ++ if( img.format() != QImage::Format_ARGB32 ) { // KIO::PreviewJob and this code below completely ignores colortable :-/,
56 ++ img = img.convertToFormat(QImage::Format_ARGB32); // so make sure there is none
57 ++ }
58 ++ struct shmid_ds shmStat;
59 ++ if (shmctl(shmid.toInt(), IPC_STAT, &shmStat) == -1 || shmStat.shm_segsz < img.sizeInBytes()) {
60 + error(KIO::ERR_INTERNAL, i18n("Image is too big for the shared memory segment"));
61 + shmdt((char*)shmaddr);
62 + return;
63 + }
64 +- if( img.format() != QImage::Format_ARGB32 ) { // KIO::PreviewJob and this code below completely ignores colortable :-/,
65 +- img = img.convertToFormat(QImage::Format_ARGB32); // so make sure there is none
66 +- }
67 + // Keep in sync with kdelibs/kio/kio/previewjob.cpp
68 + stream << img.width() << img.height() << quint8(img.format());
69 + memcpy(shmaddr, img.bits(), img.sizeInBytes());
70 +--
71 +GitLab
72 +
73
74 diff --git a/kde-apps/kio-extras/kio-extras-20.12.3-r1.ebuild b/kde-apps/kio-extras/kio-extras-20.12.3-r1.ebuild
75 new file mode 100644
76 index 00000000000..1ca9d48fb3a
77 --- /dev/null
78 +++ b/kde-apps/kio-extras/kio-extras-20.12.3-r1.ebuild
79 @@ -0,0 +1,95 @@
80 +# Copyright 1999-2021 Gentoo Authors
81 +# Distributed under the terms of the GNU General Public License v2
82 +
83 +EAPI=7
84 +
85 +ECM_HANDBOOK="forceoptional"
86 +ECM_TEST="optional"
87 +KFMIN=5.75.0
88 +QTMIN=5.15.2
89 +VIRTUALX_REQUIRED="test"
90 +inherit ecm kde.org
91 +
92 +DESCRIPTION="KIO plugins present a filesystem-like view of arbitrary data"
93 +HOMEPAGE="https://invent.kde.org/network/kio-extras"
94 +
95 +LICENSE="GPL-2" # TODO: CHECK
96 +SLOT="5"
97 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
98 +IUSE="activities +man mtp nfs openexr phonon samba +sftp taglib X"
99 +
100 +# requires running Plasma environment
101 +RESTRICT+=" test"
102 +
103 +DEPEND="
104 + >=dev-qt/qtdbus-${QTMIN}:5
105 + >=dev-qt/qtgui-${QTMIN}:5
106 + >=dev-qt/qtnetwork-${QTMIN}:5
107 + >=dev-qt/qtsvg-${QTMIN}:5
108 + >=dev-qt/qtwidgets-${QTMIN}:5
109 + >=dev-qt/qtxml-${QTMIN}:5
110 + >=kde-frameworks/karchive-${KFMIN}:5
111 + >=kde-frameworks/kbookmarks-${KFMIN}:5
112 + >=kde-frameworks/kcodecs-${KFMIN}:5
113 + >=kde-frameworks/kconfig-${KFMIN}:5
114 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5
115 + >=kde-frameworks/kcoreaddons-${KFMIN}:5
116 + >=kde-frameworks/kdbusaddons-${KFMIN}:5
117 + >=kde-frameworks/kdnssd-${KFMIN}:5
118 + >=kde-frameworks/kguiaddons-${KFMIN}:5
119 + >=kde-frameworks/ki18n-${KFMIN}:5
120 + >=kde-frameworks/kiconthemes-${KFMIN}:5
121 + >=kde-frameworks/kio-${KFMIN}:5
122 + >=kde-frameworks/kparts-${KFMIN}:5
123 + >=kde-frameworks/kservice-${KFMIN}:5
124 + >=kde-frameworks/kxmlgui-${KFMIN}:5
125 + >=kde-frameworks/solid-${KFMIN}:5
126 + >=kde-frameworks/syntax-highlighting-${KFMIN}:5
127 + activities? (
128 + >=dev-qt/qtsql-${QTMIN}:5
129 + >=kde-frameworks/kactivities-${KFMIN}:5
130 + >=kde-frameworks/kactivities-stats-${KFMIN}:5
131 + )
132 + mtp? ( >=media-libs/libmtp-1.1.16:= )
133 + nfs? ( net-libs/libtirpc:= )
134 + openexr? ( media-libs/openexr:= )
135 + phonon? ( >=media-libs/phonon-4.11.0 )
136 + samba? (
137 + net-fs/samba[client]
138 + net-libs/kdsoap:=
139 + net-libs/kdsoap-ws-discovery-client
140 + )
141 + sftp? ( net-libs/libssh:=[sftp] )
142 + taglib? ( >=media-libs/taglib-1.11.1 )
143 + X? (
144 + x11-libs/libX11
145 + x11-libs/libXcursor
146 + )
147 +"
148 +RDEPEND="${DEPEND}
149 + >=kde-frameworks/kded-${KFMIN}:5
150 +"
151 +BDEPEND="man? ( dev-util/gperf )"
152 +
153 +PATCHES=( "${FILESDIR}"/${P}-thumbnail-check-shm-size.patch ) # KDE-bug 430862
154 +
155 +src_configure() {
156 + local mycmakeargs=(
157 + $(cmake_use_find_package activities KF5Activities)
158 + $(cmake_use_find_package activities KF5ActivitiesStats)
159 + $(cmake_use_find_package man Gperf)
160 + $(cmake_use_find_package mtp Mtp)
161 + $(cmake_use_find_package nfs TIRPC)
162 + $(cmake_use_find_package openexr OpenEXR)
163 + $(cmake_use_find_package phonon Phonon4Qt5)
164 + $(cmake_use_find_package samba Samba)
165 + $(cmake_use_find_package sftp libssh)
166 + $(cmake_use_find_package taglib Taglib)
167 + $(cmake_use_find_package X X11)
168 + )
169 + use samba && mycmakeargs+=(
170 + -DBUILD_KDSoapWSDiscoveryClient=OFF # disable bundled stuff
171 + )
172 +
173 + ecm_src_configure
174 +}
175
176 diff --git a/kde-apps/kio-extras/kio-extras-21.04.1-r1.ebuild b/kde-apps/kio-extras/kio-extras-21.04.1-r1.ebuild
177 new file mode 100644
178 index 00000000000..16b5e1d74f4
179 --- /dev/null
180 +++ b/kde-apps/kio-extras/kio-extras-21.04.1-r1.ebuild
181 @@ -0,0 +1,95 @@
182 +# Copyright 1999-2021 Gentoo Authors
183 +# Distributed under the terms of the GNU General Public License v2
184 +
185 +EAPI=7
186 +
187 +ECM_HANDBOOK="forceoptional"
188 +ECM_TEST="optional"
189 +KFMIN=5.80.0
190 +QTMIN=5.15.2
191 +VIRTUALX_REQUIRED="test"
192 +inherit ecm kde.org
193 +
194 +DESCRIPTION="KIO plugins present a filesystem-like view of arbitrary data"
195 +HOMEPAGE="https://invent.kde.org/network/kio-extras"
196 +
197 +LICENSE="GPL-2" # TODO: CHECK
198 +SLOT="5"
199 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
200 +IUSE="activities +man mtp nfs openexr phonon samba +sftp taglib X"
201 +
202 +# requires running Plasma environment
203 +RESTRICT+=" test"
204 +
205 +DEPEND="
206 + >=dev-qt/qtdbus-${QTMIN}:5
207 + >=dev-qt/qtgui-${QTMIN}:5
208 + >=dev-qt/qtnetwork-${QTMIN}:5
209 + >=dev-qt/qtsvg-${QTMIN}:5
210 + >=dev-qt/qtwidgets-${QTMIN}:5
211 + >=dev-qt/qtxml-${QTMIN}:5
212 + >=kde-frameworks/karchive-${KFMIN}:5
213 + >=kde-frameworks/kbookmarks-${KFMIN}:5
214 + >=kde-frameworks/kcodecs-${KFMIN}:5
215 + >=kde-frameworks/kconfig-${KFMIN}:5
216 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5
217 + >=kde-frameworks/kcoreaddons-${KFMIN}:5
218 + >=kde-frameworks/kdbusaddons-${KFMIN}:5
219 + >=kde-frameworks/kdnssd-${KFMIN}:5
220 + >=kde-frameworks/kguiaddons-${KFMIN}:5
221 + >=kde-frameworks/ki18n-${KFMIN}:5
222 + >=kde-frameworks/kio-${KFMIN}:5
223 + >=kde-frameworks/kparts-${KFMIN}:5
224 + >=kde-frameworks/kservice-${KFMIN}:5
225 + >=kde-frameworks/kxmlgui-${KFMIN}:5
226 + >=kde-frameworks/solid-${KFMIN}:5
227 + >=kde-frameworks/syntax-highlighting-${KFMIN}:5
228 + activities? (
229 + >=dev-qt/qtsql-${QTMIN}:5
230 + >=kde-frameworks/kactivities-${KFMIN}:5
231 + >=kde-frameworks/kactivities-stats-${KFMIN}:5
232 + )
233 + mtp? ( >=media-libs/libmtp-1.1.16:= )
234 + nfs? ( net-libs/libtirpc:= )
235 + openexr? ( media-libs/openexr:= )
236 + phonon? ( >=media-libs/phonon-4.11.0 )
237 + samba? (
238 + net-fs/samba[client]
239 + net-libs/kdsoap:=
240 + net-libs/kdsoap-ws-discovery-client
241 + )
242 + sftp? ( net-libs/libssh:=[sftp] )
243 + taglib? ( >=media-libs/taglib-1.11.1 )
244 + X? (
245 + x11-libs/libX11
246 + x11-libs/libXcursor
247 + )
248 +"
249 +RDEPEND="${DEPEND}
250 + >=kde-frameworks/kded-${KFMIN}:5
251 +"
252 +BDEPEND="man? ( dev-util/gperf )"
253 +
254 +PATCHES=( "${FILESDIR}"/${PN}-20.12.3-thumbnail-check-shm-size.patch ) # KDE-bug 430862
255 +
256 +src_configure() {
257 + local mycmakeargs=(
258 + $(cmake_use_find_package activities KF5Activities)
259 + $(cmake_use_find_package activities KF5ActivitiesStats)
260 + $(cmake_use_find_package activities Qt5Sql)
261 + $(cmake_use_find_package man Gperf)
262 + $(cmake_use_find_package mtp Mtp)
263 + $(cmake_use_find_package nfs TIRPC)
264 + $(cmake_use_find_package openexr OpenEXR)
265 + $(cmake_use_find_package phonon Phonon4Qt5)
266 + $(cmake_use_find_package samba Samba)
267 + $(cmake_use_find_package sftp libssh)
268 + $(cmake_use_find_package taglib Taglib)
269 + $(cmake_use_find_package X X11)
270 + )
271 + use samba && mycmakeargs+=(
272 + -DBUILD_KDSoapWSDiscoveryClient=OFF # disable bundled stuff
273 + )
274 +
275 + ecm_src_configure
276 +}