Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-1.9.git;a=commitdiff;h=1ca3c8770611825a9e6a1dd582c49d2ca5f32034
commit 1ca3c8770611825a9e6a1dd582c49d2ca5f32034 Author: kikadf <[email protected]> Date: Thu Mar 13 08:48:35 2014 +0100 file-5.14-2arcturus2-x86_64 * Fix CVE-2014-2270 diff --git a/source/base/file/CVE-2014-2270.patch b/source/base/file/CVE-2014-2270.patch new file mode 100644 index 0000000..4608168 --- /dev/null +++ b/source/base/file/CVE-2014-2270.patch @@ -0,0 +1,140 @@ +diff -Naur file-5.14/src/softmagic.c file-5.14.new/src/softmagic.c +--- file-5.14/src/softmagic.c 2013-03-21 18:45:14.000000000 +0100 ++++ file-5.14.new/src/softmagic.c 2014-03-13 08:36:26.116233536 +0100 +@@ -62,6 +62,7 @@ + private void cvt_32(union VALUETYPE *, const struct magic *); + private void cvt_64(union VALUETYPE *, const struct magic *); + ++#define OFFSET_OOB(n, o, i) ((n) < (o) || (i) > ((n) - (o))) + /* + * softmagic - lookup one file in parsed, in-memory copy of database + * Passed the name and FILE * of one file to be typed. +@@ -1191,7 +1192,7 @@ + } + switch (cvt_flip(m->in_type, flip)) { + case FILE_BYTE: +- if (nbytes < (offset + 1)) ++ if (OFFSET_OOB(nbytes, offset, 1)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1226,7 +1227,7 @@ + offset = ~offset; + break; + case FILE_BESHORT: +- if (nbytes < (offset + 2)) ++ if (OFFSET_OOB(nbytes, offset, 2)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1278,7 +1279,7 @@ + offset = ~offset; + break; + case FILE_LESHORT: +- if (nbytes < (offset + 2)) ++ if (OFFSET_OOB(nbytes, offset, 2)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1330,7 +1331,7 @@ + offset = ~offset; + break; + case FILE_SHORT: +- if (nbytes < (offset + 2)) ++ if (OFFSET_OOB(nbytes, offset, 2)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1367,7 +1368,7 @@ + break; + case FILE_BELONG: + case FILE_BEID3: +- if (nbytes < (offset + 4)) ++ if (OFFSET_OOB(nbytes, offset, 4)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1438,7 +1439,7 @@ + break; + case FILE_LELONG: + case FILE_LEID3: +- if (nbytes < (offset + 4)) ++ if (OFFSET_OOB(nbytes, offset, 4)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1508,7 +1509,7 @@ + offset = ~offset; + break; + case FILE_MELONG: +- if (nbytes < (offset + 4)) ++ if (OFFSET_OOB(nbytes, offset, 4)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1578,7 +1579,7 @@ + offset = ~offset; + break; + case FILE_LONG: +- if (nbytes < (offset + 4)) ++ if (OFFSET_OOB(nbytes, offset, 4)) + return 0; + if (off) { + switch (m->in_op & FILE_OPS_MASK) { +@@ -1653,14 +1654,14 @@ + /* Verify we have enough data to match magic type */ + switch (m->type) { + case FILE_BYTE: +- if (nbytes < (offset + 1)) /* should alway be true */ ++ if (OFFSET_OOB(nbytes, offset, 1)) + return 0; + break; + + case FILE_SHORT: + case FILE_BESHORT: + case FILE_LESHORT: +- if (nbytes < (offset + 2)) ++ if (OFFSET_OOB(nbytes, offset, 2)) + return 0; + break; + +@@ -1679,26 +1680,26 @@ + case FILE_FLOAT: + case FILE_BEFLOAT: + case FILE_LEFLOAT: +- if (nbytes < (offset + 4)) ++ if (OFFSET_OOB(nbytes, offset, 4)) + return 0; + break; + + case FILE_DOUBLE: + case FILE_BEDOUBLE: + case FILE_LEDOUBLE: +- if (nbytes < (offset + 8)) ++ if (OFFSET_OOB(nbytes, offset, 8)) + return 0; + break; + + case FILE_STRING: + case FILE_PSTRING: + case FILE_SEARCH: +- if (nbytes < (offset + m->vallen)) ++ if (OFFSET_OOB(nbytes, offset, m->vallen)) + return 0; + break; + + case FILE_REGEX: +- if (nbytes < offset) ++ if (OFFSET_OOB(nbytes, offset, 0)) + return 0; + break; + +@@ -1727,7 +1728,7 @@ + return rv; + + case FILE_USE: +- if (nbytes < offset) ++ if (OFFSET_OOB(nbytes, offset, 0)) + return 0; + sbuf = m->value.s; + if (*sbuf == '^') { diff --git a/source/base/file/FrugalBuild b/source/base/file/FrugalBuild index 7a6b9e5..9bb8e6d 100644 --- a/source/base/file/FrugalBuild +++ b/source/base/file/FrugalBuild @@ -6,7 +6,7 @@ options+=('asneeded') pkgname=file pkgver=5.14 -pkgrel=2arcturus1 +pkgrel=2arcturus2 pkgdesc="File type identification utility" url="http://www.darwinsys.com/file/" depends=('glibc>=2.8-3' 'zlib>=1.2.3-6') @@ -17,11 +17,11 @@ source=(ftp://ftp.astron.com/pub/file/$pkgname-$pkgver.tar.gz) sha1sums=('064c8f17a5f7ae1e336a9285131e046d3b2d04d7') # FSA fix *** -source=(${source[@]} CVE-2014-1943.patch) -sha1sums=(${sha1sums[@]} 'f8a3696fde7435dd431e4ac75cfc8629cb34725a') +source=(${source[@]} CVE-2014-1943.patch CVE-2014-2270.patch) +sha1sums=(${sha1sums[@]} 'f8a3696fde7435dd431e4ac75cfc8629cb34725a' \ + '6737050b7aff65c1dc1ff526be30e0d75a3cfaa6') # *********** - build() { Fpatchall _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
