>From fb029863097e216111b40c410167ea7e36c3bf3d Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sun, 16 Aug 2020 16:28:54 +0100 Subject: [PATCH] gnu: taglib: Include patch to prevent OGG corruption. * gnu/packages/mp3.scm (taglib)[source]: Add patch. * gnu/packages/patches/taglib-fix-possible-ogg-packet-loss.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/mp3.scm | 8 +++++-- .../taglib-fix-possible-ogg-packet-loss.patch | 24 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/taglib-fix-possible-ogg-packet-loss.patch diff --git a/gnu/local.mk b/gnu/local.mk index db0f73d881..dc6df1af66 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1574,6 +1574,7 @@ dist_patch_DATA = \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-1552+.patch \ %D%/packages/patches/t4k-common-libpng16.patch \ + %D%/packages/patches/taglib-fix-possible-ogg-packet-loss.patch \ %D%/packages/patches/tao-add-missing-headers.patch \ %D%/packages/patches/tao-fix-parser-types.patch \ %D%/packages/patches/tar-remove-wholesparse-check.patch \ diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 92e3d5d5f8..b6d174f7d4 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017, 2019 Pierre Langlois +;;; Copyright © 2017, 2019, 2020 Pierre Langlois ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2020 Michael Rohleder @@ -167,7 +167,11 @@ a highly stable and efficient implementation.") version ".tar.gz")) (sha256 (base32 - "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn")))) + "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn")) + ;; Fix https://github.com/taglib/taglib/issues/864, which will + ;; be included in the next 1.12 release. + (patches + (search-patches "taglib-fix-possible-ogg-packet-loss.patch")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on. diff --git a/gnu/packages/patches/taglib-fix-possible-ogg-packet-loss.patch b/gnu/packages/patches/taglib-fix-possible-ogg-packet-loss.patch new file mode 100644 index 0000000000..665732888f --- /dev/null +++ b/gnu/packages/patches/taglib-fix-possible-ogg-packet-loss.patch @@ -0,0 +1,24 @@ +From 9336c82da3a04552168f208cd7a5fa4646701ea4 Mon Sep 17 00:00:00 2001 +From: Tsuda Kageyu +Date: Thu, 1 Dec 2016 11:32:01 +0900 +Subject: [PATCH] Fix possible Ogg packet losses. + +See https://github.com/taglib/taglib/issues/864 for details. + +--- + taglib/ogg/oggfile.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/taglib/ogg/oggfile.cpp b/taglib/ogg/oggfile.cpp +index 86b0b0764..c36e4d46c 100644 +--- a/taglib/ogg/oggfile.cpp ++++ b/taglib/ogg/oggfile.cpp +@@ -253,7 +253,7 @@ void Ogg::File::writePacket(unsigned int i, const ByteVector &packet) + ByteVectorList packets = firstPage->packets(); + packets[i - firstPage->firstPacketIndex()] = packet; + +- if(firstPage != lastPage && lastPage->packetCount() > 2) { ++ if(firstPage != lastPage && lastPage->packetCount() > 1) { + ByteVectorList lastPagePackets = lastPage->packets(); + lastPagePackets.erase(lastPagePackets.begin()); + packets.append(lastPagePackets); -- 2.28.0