forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kde-frameworks/kfilemetadata: Fix crashing over .spx binary files
KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=403902 Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Andreas Sturmlechner <[email protected]>
- Loading branch information
Showing
2 changed files
with
114 additions
and
0 deletions.
There are no files selected for viewing
46 changes: 46 additions & 0 deletions
46
kde-frameworks/kfilemetadata/files/kfilemetadata-5.57.0-non-speex-files-crash.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
From 61b1916c3e87c3b8f4fc3d1f1d19bf427b9247da Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]> | ||
Date: Tue, 30 Apr 2019 03:51:14 +0200 | ||
Subject: [TagLibExtractor] Fix crash on invalid Speex files | ||
|
||
Summary: | ||
TagLib::Ogg::Speex::File::isValid() returns true even for invalid files, | ||
but tag() only returns a valid XiphComment when the file is valid. | ||
|
||
Other TagLib::Ogg::* classes properly clear the valid flag when | ||
encountering files. | ||
|
||
See https://github.com/taglib/taglib/issues/902 | ||
|
||
BUG: 403902 | ||
|
||
Reviewers: #baloo, #frameworks, ngraham, astippich | ||
|
||
Reviewed By: #baloo, ngraham, astippich | ||
|
||
Subscribers: kde-frameworks-devel | ||
|
||
Tags: #frameworks, #baloo | ||
|
||
Differential Revision: https://phabricator.kde.org/D20913 | ||
--- | ||
src/extractors/taglibextractor.cpp | 4 +++- | ||
1 file changed, 3 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/src/extractors/taglibextractor.cpp b/src/extractors/taglibextractor.cpp | ||
index 1954cac..e355907 100644 | ||
--- a/src/extractors/taglibextractor.cpp | ||
+++ b/src/extractors/taglibextractor.cpp | ||
@@ -476,7 +476,9 @@ void TagLibExtractor::extract(ExtractionResult* result) | ||
} | ||
} else if (mimeType == QLatin1String("audio/speex") || mimeType == QLatin1String("audio/x-speex+ogg")) { | ||
TagLib::Ogg::Speex::File file(&stream, true); | ||
- if (file.isValid()) { | ||
+ // Workaround for buggy taglib: | ||
+ // isValid() returns true for invalid files, but XiphComment* tag() returns a nullptr | ||
+ if (file.isValid() && file.tag()) { | ||
extractAudioProperties(&file, result); | ||
readGenericProperties(file.properties(), result); | ||
} | ||
-- | ||
cgit v1.1 |
68 changes: 68 additions & 0 deletions
68
kde-frameworks/kfilemetadata/kfilemetadata-5.57.0-r1.ebuild
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) | ||
inherit kde5 python-any-r1 | ||
|
||
DESCRIPTION="Library for extracting file metadata" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~x86" | ||
IUSE="epub exif ffmpeg kernel_linux libav office pdf taglib" | ||
|
||
BDEPEND=" | ||
test? ( ${PYTHON_DEPS} ) | ||
" | ||
RDEPEND=" | ||
$(add_frameworks_dep kcoreaddons) | ||
$(add_frameworks_dep ki18n) | ||
$(add_qt_dep qtxml) | ||
epub? ( app-text/ebook-tools ) | ||
exif? ( media-gfx/exiv2:= ) | ||
ffmpeg? ( | ||
libav? ( >=media-video/libav-12.2:= ) | ||
!libav? ( media-video/ffmpeg:0= ) | ||
) | ||
office? ( $(add_frameworks_dep karchive) ) | ||
pdf? ( app-text/poppler[qt5] ) | ||
taglib? ( media-libs/taglib ) | ||
" | ||
DEPEND="${RDEPEND} | ||
kernel_linux? ( sys-apps/attr ) | ||
" | ||
|
||
PATCHES=( "${FILESDIR}/${P}-non-speex-files-crash.patch" ) | ||
|
||
pkg_setup() { | ||
use test && python-any-r1_pkg_setup | ||
kde5_pkg_setup | ||
} | ||
|
||
src_configure() { | ||
local mycmakeargs=( | ||
$(cmake-utils_use_find_package epub EPub) | ||
$(cmake-utils_use_find_package exif LibExiv2) | ||
$(cmake-utils_use_find_package ffmpeg FFmpeg) | ||
$(cmake-utils_use_find_package office KF5Archive) | ||
$(cmake-utils_use_find_package pdf Poppler) | ||
$(cmake-utils_use_find_package taglib Taglib) | ||
) | ||
|
||
kde5_src_configure | ||
} | ||
|
||
src_test() { | ||
# FIXME: bug 644650, fails on tmpfs (but not for everyone) | ||
local myctestargs=( -E "(usermetadatawritertest)" ) | ||
kde5_src_test | ||
} | ||
|
||
pkg_postinst() { | ||
kde5_pkg_postinst | ||
|
||
if ! has_version app-text/catdoc || ! has_version dev-libs/libxls; then | ||
elog "To get additional features, optional runtime dependencies may be installed:" | ||
elog "app-text/catdoc - indexing of Microsoft Word or Powerpoint files" | ||
elog "dev-libs/libxls - indexing of Microsoft Excel files" | ||
fi | ||
} |