id3lib: fix CVE-2007-4460

This commit is contained in:
maxice8 2018-10-03 10:17:43 -03:00 committed by maxice8
parent 84f78b0a35
commit 2e372bbb84
2 changed files with 60 additions and 5 deletions

View file

@ -0,0 +1,55 @@
This patch fixes an issues where temporary files were created in an insecure
way.
It was first intruduced in version 3.8.3-7 and fixes
http://bugs.debian.org/438540
--- src/tag_file.cpp
+++ src/tag_file.cpp
@@ -242,8 +242,8 @@
strcpy(sTempFile, filename.c_str());
strcat(sTempFile, sTmpSuffix.c_str());
-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
- // This section is for Windows folk && gcc 3.x folk
+#if !defined(HAVE_MKSTEMP)
+ // This section is for Windows folk
fstream tmpOut;
createFile(sTempFile, tmpOut);
@@ -257,7 +257,7 @@
tmpOut.write((char *)tmpBuffer, nBytes);
}
-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
+#else //!defined(HAVE_MKSTEMP)
// else we gotta make a temp file, copy the tag into it, copy the
// rest of the old file after the tag, delete the old file, rename
@@ -270,7 +270,7 @@
//ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file");
}
- ofstream tmpOut(fd);
+ ofstream tmpOut(sTempFile);
if (!tmpOut)
{
tmpOut.close();
@@ -285,14 +285,14 @@
uchar tmpBuffer[BUFSIZ];
while (file)
{
- file.read(tmpBuffer, BUFSIZ);
+ file.read((char *)tmpBuffer, BUFSIZ);
size_t nBytes = file.gcount();
- tmpOut.write(tmpBuffer, nBytes);
+ tmpOut.write((char *)tmpBuffer, nBytes);
}
close(fd); //closes the file
-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
+#endif ////!defined(HAVE_MKSTEMP)
tmpOut.close();
file.close();

View file

@ -1,15 +1,15 @@
# Template file for 'id3lib'
# Template file for 'id3lib'
pkgname=id3lib
version=3.8.3
revision=5
revision=6
build_style=gnu-configure
hostmakedepends="libtool automake"
makedepends="zlib-devel"
short_desc="Library for reading, writing, and manipulating ID3v1 and ID3v2 tags"
maintainer="Christian Neukirchen <chneukirchen@gmail.com>"
license="LGPL-3"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="LGPL-2.0-or-later"
homepage="http://id3lib.sourceforge.net/"
distfiles="${SOURCEFORGE_SITE}/$pkgname/$pkgname-$version.tar.gz"
distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
checksum=2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079
pre_configure() {