yarock, taglib, sayonara.

This commit is contained in:
4fury-c3440d8
2020-09-15 10:58:55 +03:00
parent 844343d4a4
commit c3a1700401
11 changed files with 275 additions and 218 deletions
+5 -5
View File
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import cmaketools
from pisi.actionsapi import pisitools
@@ -10,13 +10,13 @@ from pisi.actionsapi import get
def setup():
cmaketools.configure("-DBUILD_SHARED_LIBS=ON \
-DWITH_MP4=ON \
-DWITH_ASF=ON")
-DWITH_MP4=ON \
-DWITH_ASF=ON")
def build():
cmaketools.make()
def install():
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("AUTHORS","COPYING*")
pisitools.dodoc("AUTHORS","COPYING*")
@@ -0,0 +1,30 @@
From eb9ded1206f18f2c319157337edea2533a40bea6 Mon Sep 17 00:00:00 2001
From: "Stephen F. Booth" <me@sbooth.org>
Date: Sun, 23 Jul 2017 10:11:09 -0400
Subject: [PATCH] Don't assume TDRC is an instance of TextIdentificationFrame
If TDRC is encrypted, FrameFactory::createFrame() returns UnknownFrame
which causes problems in rebuildAggregateFrames() when it is assumed
that TDRC is a TextIdentificationFrame
---
taglib/mpeg/id3v2/id3v2framefactory.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/taglib/mpeg/id3v2/id3v2framefactory.cpp b/taglib/mpeg/id3v2/id3v2framefactory.cpp
index 759a9b7be..9347ab869 100644
--- a/taglib/mpeg/id3v2/id3v2framefactory.cpp
+++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp
@@ -334,10 +334,11 @@ void FrameFactory::rebuildAggregateFrames(ID3v2::Tag *tag) const
tag->frameList("TDAT").size() == 1)
{
TextIdentificationFrame *tdrc =
- static_cast<TextIdentificationFrame *>(tag->frameList("TDRC").front());
+ dynamic_cast<TextIdentificationFrame *>(tag->frameList("TDRC").front());
UnknownFrame *tdat = static_cast<UnknownFrame *>(tag->frameList("TDAT").front());
- if(tdrc->fieldList().size() == 1 &&
+ if(tdrc &&
+ tdrc->fieldList().size() == 1 &&
tdrc->fieldList().front().size() == 4 &&
tdat->data().size() >= 5)
{
@@ -0,0 +1,41 @@
From 272648ccfcccae30e002ccf34a22e075dd477278 Mon Sep 17 00:00:00 2001
From: Scott Gayou <github.scott@gmail.com>
Date: Mon, 4 Jun 2018 11:34:36 -0400
Subject: [PATCH] Fixed OOB read when loading invalid ogg flac file. (#868)
CVE-2018-11439 is caused by a failure to check the minimum length
of a ogg flac header. This header is detailed in full at:
https://xiph.org/flac/ogg_mapping.html. Added more strict checking
for entire header.
---
taglib/ogg/flac/oggflacfile.cpp | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp
index 53d04508a..07ea9dccc 100644
--- a/taglib/ogg/flac/oggflacfile.cpp
+++ b/taglib/ogg/flac/oggflacfile.cpp
@@ -231,11 +231,21 @@ void Ogg::FLAC::File::scan()
if(!metadataHeader.startsWith("fLaC")) {
// FLAC 1.1.2+
+ // See https://xiph.org/flac/ogg_mapping.html for the header specification.
+ if(metadataHeader.size() < 13)
+ return;
+
+ if(metadataHeader[0] != 0x7f)
+ return;
+
if(metadataHeader.mid(1, 4) != "FLAC")
return;
- if(metadataHeader[5] != 1)
- return; // not version 1
+ if(metadataHeader[5] != 1 && metadataHeader[6] != 0)
+ return; // not version 1.0
+
+ if(metadataHeader.mid(9, 4) != "fLaC")
+ return;
metadataHeader = metadataHeader.mid(13);
}
@@ -0,0 +1,22 @@
From 9336c82da3a04552168f208cd7a5fa4646701ea4 Mon Sep 17 00:00:00 2001
From: Tsuda Kageyu <tsuda.kageyu@gmail.com>
Date: Thu, 1 Dec 2016 11:32:01 +0900
Subject: [PATCH] Fix possible Ogg packet losses.
---
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);
@@ -1,31 +0,0 @@
diff -ruN taglib-1.4.org/taglib/toolkit/tstring.cpp taglib-1.4/taglib/toolkit/tstring.cpp
--- taglib-1.4.org/taglib/toolkit/tstring.cpp 2005-07-26 06:31:15.000000000 +0900
+++ taglib-1.4/taglib/toolkit/tstring.cpp 2006-05-26 12:02:55.000000000 +0900
@@ -202,12 +202,22 @@
s.resize(d->data.size());
if(!unicode) {
- std::string::iterator targetIt = s.begin();
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
- *targetIt = char(*it);
- ++targetIt;
+ bool cjk = false;
+ //pre-scan: is there any cjk unicode character? if so, convert the string into utf-8.
+ for(unsigned int i=0; i< d->data.size(); i++){
+ if(d->data[i] > 0xff){
+ cjk = true;
+ break;
+ }
+ }
+ if(!cjk){
+ std::string::iterator targetIt = s.begin();
+ for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
+ *targetIt = char(*it);
+ ++targetIt;
+ }
+ return s;
}
- return s;
}
const int outputBufferSize = d->data.size() * 3 + 1;
+19 -7
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>taglib</Name>
<Homepage>http://developer.kde.org/~wheeler/taglib.html</Homepage>
<Homepage>https://taglib.org/</Homepage>
<Packager>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
@@ -12,12 +12,17 @@
<IsA>library</IsA>
<Summary>A library for reading and editing audio meta data</Summary>
<Description>TagLib is a library for reading and editing the meta data of several popular audio formats.</Description>
<Archive sha1sum="80a30eeae67392f636c9f113c60d778c2995c99e" type="targz">http://taglib.org/releases/taglib-1.11.1.tar.gz</Archive>
<Archive sha1sum="80a30eeae67392f636c9f113c60d778c2995c99e" type="targz">https://taglib.org/releases/taglib-1.11.1.tar.gz</Archive>
<BuildDependencies>
<Dependency>cmake</Dependency>
<Dependency>boost-devel</Dependency>
<Dependency>zlib-devel</Dependency>
</BuildDependencies>
<Dependency>boost-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">CVE-2017-12678.patch</Patch>
<Patch level="1">CVE-2017-11439.patch</Patch>
<Patch level="1">fix_ogg_corruption.patch</Patch>
</Patches>
</Source>
<Package>
@@ -25,10 +30,10 @@
<RuntimeDependencies>
<Dependency>zlib</Dependency>
<Dependency>libgcc</Dependency>
</RuntimeDependencies>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
@@ -46,6 +51,13 @@
</Package>
<History>
<Update release="8">
<Date>2020-09-15</Date>
<Version>1.11.1</Version>
<Comment>Rebuild.</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2020-01-19</Date>
<Version>1.11.1</Version>