summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2015-07-30 02:18:40 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2015-07-30 02:18:40 +0000
commiteae5d801d5efb52604bef2c67333293c6c2487fe (patch)
tree23792174200e42ede6bd3a0da4bc9e87d3f12741 /dev-libs
parentRequire xmlrpc-c[curl] (bug #556112, thanks to Toralf Förster). (diff)
downloadhistorical-eae5d801d5efb52604bef2c67333293c6c2487fe.tar.gz
historical-eae5d801d5efb52604bef2c67333293c6c2487fe.tar.bz2
historical-eae5d801d5efb52604bef2c67333293c6c2487fe.zip
Fix buffer overflow (bug #555642, CVE-2015-1283, thanks to Agostino Sarubbo and Paweł Hajdan, Jr.). Improve description. Clean out old ebuilds.
Package-Manager: portage-2.2.20/cvs/Linux x86_64 Manifest-Sign-Key: 0x18E5B6F2D8D5EC8D
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/expat/ChangeLog10
-rw-r--r--dev-libs/expat/Manifest42
-rw-r--r--dev-libs/expat/expat-2.1.0-r2.ebuild92
-rw-r--r--dev-libs/expat/expat-2.1.0-r4.ebuild4
-rw-r--r--dev-libs/expat/expat-2.1.0-r5.ebuild (renamed from dev-libs/expat/expat-2.1.0-r3.ebuild)10
-rw-r--r--dev-libs/expat/files/expat-2.1.0-mozilla-sanity-check-size.patch81
6 files changed, 119 insertions, 120 deletions
diff --git a/dev-libs/expat/ChangeLog b/dev-libs/expat/ChangeLog
index 27c6a4365a79..5d9f862d2e55 100644
--- a/dev-libs/expat/ChangeLog
+++ b/dev-libs/expat/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for dev-libs/expat
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/ChangeLog,v 1.174 2015/06/09 14:16:10 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/ChangeLog,v 1.175 2015/07/30 02:18:34 tetromino Exp $
+
+*expat-2.1.0-r5 (30 Jul 2015)
+
+ 30 Jul 2015; Alexandre Rostovtsev <tetromino@gentoo.org>
+ -expat-2.1.0-r2.ebuild, -expat-2.1.0-r3.ebuild, expat-2.1.0-r4.ebuild,
+ +expat-2.1.0-r5.ebuild, +files/expat-2.1.0-mozilla-sanity-check-size.patch:
+ Fix buffer overflow (bug #555642, CVE-2015-1283, thanks to Agostino Sarubbo
+ and Paweł Hajdan, Jr.). Improve description. Clean out old ebuilds.
09 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
Updating remote-id in metadata.xml
diff --git a/dev-libs/expat/Manifest b/dev-libs/expat/Manifest
index be952bb33b7d..041821472d1d 100644
--- a/dev-libs/expat/Manifest
+++ b/dev-libs/expat/Manifest
@@ -1,29 +1,29 @@
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA512
+Hash: SHA256
+AUX expat-2.1.0-mozilla-sanity-check-size.patch 2414 SHA256 513aee4359a79efb7eb0c55768aff55dd4688d4468d2f95e8b1c4efb495c8547 SHA512 70d2504d4b280b5e5efaaf23e51c17a427573a1844d89a45e4b47fa778015e5c41b6187865bdab1003e06fbf1d98badae724887d9dadcbc59e47d6420f874117 WHIRLPOOL a46662fea2bb90dae1a8ebb51e8627014a09ee822226aba434fcdafaa353585dee80e17468d93e636a67bbf8a445c570bd10f0ae3b79b11d604b87a29b771952
AUX expat-2.1.0-xmlwfargs.patch 478 SHA256 738a06abaafebb301a98992d686b9a55699f6dcac09663071a4e1cac283b2834 SHA512 db7e75a6d1b43f20352223ccc3703683426ce10d67e68dce4ac5faeba8bbe42270281796a9db495e98d53f6d2c7ead8bfb3e2e2668cf5dfa0bc9c1acb0170e26 WHIRLPOOL 85df93895e392c44bb5cd648aa017b2b95adddd5ec765023a7a82223c1c55b677ec3199960afb027d67372c7acc605068d089d49488225bb39aaaea6b7e3c4f9
DIST expat-2.1.0.tar.gz 562616 SHA256 823705472f816df21c8f6aa026dd162b280806838bb55b3432b0fb1fcca7eb86 SHA512 2a9ad2b44b87b84087979fe4114d661838df3b03dbdcb74d590cb74096bf35ce9d5a86617b0941a2655ea441a94537bcbcd78252da92342238823be36de2d09d WHIRLPOOL 147eb383fdb79116e2215982e9741939f80249a0bb690e93b00218fa335d483d88f82d9256632b458b13592252aeb100ec4ef830c72bb8eb5df7675cd15f41e1
-EBUILD expat-2.1.0-r2.ebuild 2322 SHA256 cf8865566582aabced12c76802dab72396ab1192a7bbba288c072d5afcd80259 SHA512 14cdcfd29d89db43d28e258f8048888f7cbe2cdf37a219421dee7d28f331a79815c78591d3635b2d7e169a9762c7b51a7c0db044b291f2cbee198e4831cb24fd WHIRLPOOL a6e8ecdd76d01121ac3545e5e8dc1a0a82aac89bdda77ccbe2d94f8188c59e9244f76f4c966240bfd4fbaf82e102e6ac59eb10681580a28fa4629754c1b270ca
-EBUILD expat-2.1.0-r3.ebuild 2430 SHA256 6f92becbd91ef00a07f30bc6146f7ee3ee54196a88e7ca8c25a5e7bbf9a79d8a SHA512 0e474abdcc85f12f9ead86becb04c1f9567b5bca96afdfa45796ecc8c6a4e8ef2414284acc4620db3c633d0b6efc6f3c1306bbd04f0262a44e282d7ce26f8b16 WHIRLPOOL b5e8b91b3c20f747d1d89208a1b31a829b179f29075a6332dc73043b46eecc37fc3f7a8b59a14c0d39f309f599a7c7efe3d4eb4d5625d7a061968ab11b90962e
-EBUILD expat-2.1.0-r4.ebuild 2478 SHA256 21d61cfcc61373715b35c1272e9b75a4457acd8bd95ac92bbedc2bf50acde032 SHA512 e0cc52ee6e99a07262478e6302cca2f12629ce9656c95e109cd2e4b31b3aa28dbb2122a610cba4cf6f5159d7f8b7e4dac3c3de498a31cfd6b55860f1f5a3f41b WHIRLPOOL a0773461f041ad38b7266239bdbcd8b0bf1e06385f849fb6923817f98ed53d34116f3d196991fd1c56db67234ebe314d2e150cd709d474910c07db084ae8cf06
-MISC ChangeLog 22600 SHA256 fa87a46314c0b605e7b26d0e342b837fa609d31bee4c50a89cbdd559a4be98f7 SHA512 69b68cde5076ff896840e9bb9dbd339905db734ebda2067dfc76c56f2a26b97142754468b4827ba63393138ea7dbeab8aa43647df8c461e7c8259e4cc7424527 WHIRLPOOL 78701cc44312a5217a5cd6f6c19301109b4750dcd85c1f40434a800022fe6abfa6e8a81faa5f798e436880b8a8b262f75e350dd5631b8b51d03314974df2e72e
+EBUILD expat-2.1.0-r4.ebuild 2493 SHA256 cb4f8e8905aa338996ba69cd58076427c749e0410f5c38624677f9d743b012e9 SHA512 e706a302d6ac0b88c1f4057addc6b5eac354f9c802e17e91d5fcb889a16374f9bb0dbc977614f7f7beb72821c0bf382d98e3c87013949c23f09718f45ecee5eb WHIRLPOOL 59805ec8caa8327613f55d128f8d7540a47fd37c31e079ebe953076aa1c7f4aa8ba1f7e55422d5f300c7086d9e09fc32faf5d7f88ed7572b24d79eb8f0cf7e7e
+EBUILD expat-2.1.0-r5.ebuild 2568 SHA256 69615bbafa02cfafda3a9c7b659dfa2418a04c5c62b8c18a89aace606d189549 SHA512 ecbf3582c38ac6a6d000c7d76cdafa98198b90169f3399a59b39b88edeeb7d80c8a0fdc4607ff75bc8bd26f05236688d4f06a031b09e75b29cd076b9dfb3e69c WHIRLPOOL ec844bdcf33c0f8ee166d3e4bf3fa4c35c84ff92cd90f10f3be47099b3274233352c48cdd5631ca5acb01c574f35a0821e64b85ae79fd1d0c5bae44c4fd2293b
+MISC ChangeLog 22996 SHA256 6ecaabac07033daa902d80307a1dd3f264c7a2f7c33c6c6c830b832c9fc18a5d SHA512 3ba105923695d48e75caa1400442cc5fb6abd16684995d48fbab407de95c7a5041551f3601563b751771893dc66cd144beb5e83e86164e6b7a8777bada41ac61 WHIRLPOOL 1bc9e045b98883938d02be0beb16ba0f28d2a817b0471ba63e6e1caf5bd7f933b4aa269b646529cd4f6e7b932f2c81e9d772ae5b082ea53cdcaeb4c9259b7ea4
MISC metadata.xml 298 SHA256 b6300ca6cc8447e5cc36d14b457505aa72b00814fb6bd91160260681617f2a04 SHA512 0efce4d93b77269e6a45a0add3cac689a1b5e35b81627c1ace0e4559a497644e15e7416ad58d337fcf6b6329c40c32ad9fe2ec30a33f0ca527fd9a2204b1e1d0 WHIRLPOOL cd8ed71233d8e9a4720b9ec81e388c1a7bd9a9ec461443ea15137c74832e4ab5ebadcf69387b1e15854d005499a393bb502f27a20da16fb1a08831557b32cc7d
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0
+Version: GnuPG v2.1
-iQJ8BAEBCgBmBQJVdvUrXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
-ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ0QUU0N0I4NzFERUI0MTJFN0EyODE0NUFF
-OTQwMkE3OUIwMzUyOUEyAAoJEOlAKnmwNSmilf4P/1c76Aoz61O2wkKgriAmzAEr
-DxhxaWqn2QC/lOQG7gfbqJbj10v+U2wC0ObLdy9C5C4NpfTu5uYeHQt9EQplgkHv
-HGHvRWMZ1YpUkeS233DK/qRaEyXZmFAJLWKco59HwgBo4Dir9IpS0Pot47voPD8M
-F2jFJdjqniV3vJ5BVUCQu73OqpZGzNFH31iOjqscvEWxr3o8/ta8tee/Oy+pPVLQ
-xI3dF7Nd6lmJYeS1+G92qgM2s7NfJ6/BKxq8II3Hu/j+kKw8Dd9rR4PlWMZoEtdS
-hjARlKSwX+mQ/CO5r8G2lujoodcIStWfru+KDv6jUapoTQWILa2VK+ZjUgiL8R94
-DT8C3Isqxx/a7VZarNUYQmOWQ/tMJ1z8PeO/VhPp5NUHtDE8Rg7Vb7rQKSn3AgWE
-7RGXIUGMLpD4h5S1iM07l01BczslR9UtvZMQdljblYJXhMLpuogJac+LGZj/s6/f
-8hV4hO8YdVHab0FO95e5ermOolDbVmlk7viI0XlRsIKvpD517KkFU1pOo8T5CU4z
-K3EeIzFZnb/FD3zLSyrXtIR+9WYVNSC+GOP4pzNqLn4pUQVZwCGaBC3A7b/9+AJ0
-Bz8BDI4O4n677bJBhlP3P31i5/4I17NU5L5pwNfAZ7MCADMrup3CLSAUJguNz8q8
-lUzoo22StsyPoF2w6U55
-=hVdC
+iQJ8BAEBCABmBQJVuYl8XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
+ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ1RTNCRkUzRDRBNkI2MEEwQkYwQzMyOEEx
+OEU1QjZGMkQ4RDVFQzhEAAoJEBjltvLY1eyNAOgP/3AzwLL6o3CKm1aGUhE4kUyT
+me4L2FDLHwPZkJTP8FeEI0rDrGsbmi5YAu5KSykqPcEU3mFQyeH9bWanC/NlpCH/
+07ucKvJ6WBNayx0zCEvCeToB4fihMOOVxMIYI79qjnkxODCBSdeeUnXta55E5QB1
+ok9hsfFKYl0QWsfAE0C0iC4kpyWSG08uJ5HTu1/ZrrR+mtwBK/EYmRd/vxnBtQq1
+TcsZmDfhY9of5hHkMH09R644AWFmflBRjq9/injtcTZUq2q9qAeg1T9DbYK9gB5l
+SD1zjsNDt2cWbbe0ezP61K9zhlFu+bc69kLM0sT4qph0xeUwDcVX3EUCTa5cCRZ7
+Rsyv7XCDbLIxWoLB6AbO++93Jd+gu3maICySEmcjI0TmoJXwUmF003YOZZm83wwP
+aHkcc3T4orsFhBUkhzPtek5akoTM2cJIdMaBCS2GTwLSQ7bJpK5EYzqQbsxU2/i1
+lDbfm+NdB/QCpI9zh4hRR47Yg25cNrNkuXQGoJ+uF62Bd5WApOtSHwOk9JJMfi9L
+sd2uXAITW41ADMzPf0cY5HInh736mOVOjhKucXWSDukdtLWBeVAHdHqjmVvji7F8
+z1J6qH3WYvk6G79zdjyKcvdvuueSZ9zsIg3xSX907gyPK7i7v3wKG4ACqd3VjmSj
+K8zNJQx+qgsYgqTq5WP8
+=41vT
-----END PGP SIGNATURE-----
diff --git a/dev-libs/expat/expat-2.1.0-r2.ebuild b/dev-libs/expat/expat-2.1.0-r2.ebuild
deleted file mode 100644
index d78890b843cc..000000000000
--- a/dev-libs/expat/expat-2.1.0-r2.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/expat-2.1.0-r2.ebuild,v 1.8 2013/03/09 12:33:55 ssuominen Exp $
-
-EAPI=4
-inherit eutils libtool multilib toolchain-funcs
-
-DESCRIPTION="XML parsing libraries"
-HOMEPAGE="http://expat.sourceforge.net/"
-SRC_URI="mirror://sourceforge/expat/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
-IUSE="elibc_FreeBSD examples static-libs unicode"
-
-src_prepare() {
- elibtoolize
-
- mkdir "${S}"-build{,u,w} || die
-}
-
-src_configure() {
- local myconf="$(use_enable static-libs static)"
-
- pushd "${S}"-build >/dev/null
- ECONF_SOURCE="${S}" econf ${myconf}
- popd >/dev/null
-
- if use unicode; then
- pushd "${S}"-buildu >/dev/null
- CPPFLAGS="${CPPFLAGS} -DXML_UNICODE" ECONF_SOURCE="${S}" econf ${myconf}
- popd >/dev/null
-
- pushd "${S}"-buildw >/dev/null
- CPPFLAGS="${CPPFLAGS} -DXML_UNICODE_WCHAR_T" ECONF_SOURCE="${S}" econf ${myconf}
- popd >/dev/null
- fi
-}
-
-src_compile() {
- pushd "${S}"-build >/dev/null
- emake
- popd >/dev/null
-
- if use unicode; then
- pushd "${S}"-buildu >/dev/null
- emake buildlib LIBRARY=libexpatu.la
- popd >/dev/null
-
- pushd "${S}"-buildw >/dev/null
- emake buildlib LIBRARY=libexpatw.la
- popd >/dev/null
- fi
-}
-
-src_install() {
- dodoc Changes README
- dohtml doc/*
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins examples/*.c
- fi
-
- pushd "${S}"-build >/dev/null
- emake install DESTDIR="${D}"
- popd >/dev/null
-
- if use unicode; then
- pushd "${S}"-buildu >/dev/null
- emake installlib DESTDIR="${D}" LIBRARY=libexpatu.la
- popd >/dev/null
-
- pushd "${S}"-buildw >/dev/null
- emake installlib DESTDIR="${D}" LIBRARY=libexpatw.la
- popd >/dev/null
-
- pushd "${ED}"/usr/$(get_libdir)/pkgconfig >/dev/null
- cp expat.pc expatu.pc
- sed -i -e '/^Libs/s:-lexpat:&u:' expatu.pc || die
- cp expat.pc expatw.pc
- sed -i -e '/^Libs/s:-lexpat:&w:' expatw.pc || die
- popd >/dev/null
- fi
-
- rm -f "${ED}"usr/lib*/libexpat{,u,w}.la
-
- # libgeom in /lib and ifconfig in /sbin require libexpat on FreeBSD since
- # we stripped the libbsdxml copy starting from freebsd-lib-8.2-r1
- use elibc_FreeBSD && gen_usr_ldscript -a expat
-}
diff --git a/dev-libs/expat/expat-2.1.0-r4.ebuild b/dev-libs/expat/expat-2.1.0-r4.ebuild
index b5b3b8484a62..c04eb3df1b9c 100644
--- a/dev-libs/expat/expat-2.1.0-r4.ebuild
+++ b/dev-libs/expat/expat-2.1.0-r4.ebuild
@@ -1,11 +1,11 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/expat-2.1.0-r4.ebuild,v 1.11 2015/05/27 12:55:43 zlogene Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/expat-2.1.0-r4.ebuild,v 1.12 2015/07/30 02:18:34 tetromino Exp $
EAPI=5
inherit eutils libtool multilib toolchain-funcs multilib-minimal
-DESCRIPTION="XML parsing libraries"
+DESCRIPTION="Stream-oriented XML parser library"
HOMEPAGE="http://expat.sourceforge.net/"
SRC_URI="mirror://sourceforge/expat/${P}.tar.gz"
diff --git a/dev-libs/expat/expat-2.1.0-r3.ebuild b/dev-libs/expat/expat-2.1.0-r5.ebuild
index 961cb5da35ea..a843540bef54 100644
--- a/dev-libs/expat/expat-2.1.0-r3.ebuild
+++ b/dev-libs/expat/expat-2.1.0-r5.ebuild
@@ -1,22 +1,24 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/expat-2.1.0-r3.ebuild,v 1.15 2014/04/28 17:27:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/expat/expat-2.1.0-r5.ebuild,v 1.1 2015/07/30 02:18:34 tetromino Exp $
EAPI=5
inherit eutils libtool multilib toolchain-funcs multilib-minimal
-DESCRIPTION="XML parsing libraries"
+DESCRIPTION="Stream-oriented XML parser library"
HOMEPAGE="http://expat.sourceforge.net/"
SRC_URI="mirror://sourceforge/expat/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
IUSE="elibc_FreeBSD examples static-libs unicode"
RDEPEND="abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r6
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
src_prepare() {
+ epatch "${FILESDIR}"/${P}-xmlwfargs.patch
+ epatch "${FILESDIR}"/${P}-mozilla-sanity-check-size.patch #555642
elibtoolize
}
diff --git a/dev-libs/expat/files/expat-2.1.0-mozilla-sanity-check-size.patch b/dev-libs/expat/files/expat-2.1.0-mozilla-sanity-check-size.patch
new file mode 100644
index 000000000000..366bd4f32b54
--- /dev/null
+++ b/dev-libs/expat/files/expat-2.1.0-mozilla-sanity-check-size.patch
@@ -0,0 +1,81 @@
+
+# HG changeset patch
+# User Eric Rahm <erahm@mozilla.com>
+# Date 1428706223 25200
+# Node ID 438d9e2a991ab82381a1a1442a470b2565c80c13
+# Parent 1c0861d7a6457f461cccccb2e0895a9f9d34c8d4
+Bug 1140537 - Sanity check size calculations. r=peterv
+
+diff --git a/parser/expat/lib/xmlparse.c b/parser/expat/lib/xmlparse.c
+--- a/parser/expat/lib/xmlparse.c
++++ b/parser/expat/lib/xmlparse.c
+@@ -1648,29 +1648,40 @@ XML_ParseBuffer(XML_Parser parser, int l
+ XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position);
+ positionPtr = bufferPtr;
+ return result;
+ }
+
+ void * XMLCALL
+ XML_GetBuffer(XML_Parser parser, int len)
+ {
++/* BEGIN MOZILLA CHANGE (sanity check len) */
++ if (len < 0) {
++ errorCode = XML_ERROR_NO_MEMORY;
++ return NULL;
++ }
++/* END MOZILLA CHANGE */
+ switch (ps_parsing) {
+ case XML_SUSPENDED:
+ errorCode = XML_ERROR_SUSPENDED;
+ return NULL;
+ case XML_FINISHED:
+ errorCode = XML_ERROR_FINISHED;
+ return NULL;
+ default: ;
+ }
+
+ if (len > bufferLim - bufferEnd) {
+- /* FIXME avoid integer overflow */
+ int neededSize = len + (int)(bufferEnd - bufferPtr);
++/* BEGIN MOZILLA CHANGE (sanity check neededSize) */
++ if (neededSize < 0) {
++ errorCode = XML_ERROR_NO_MEMORY;
++ return NULL;
++ }
++/* END MOZILLA CHANGE */
+ #ifdef XML_CONTEXT_BYTES
+ int keep = (int)(bufferPtr - buffer);
+
+ if (keep > XML_CONTEXT_BYTES)
+ keep = XML_CONTEXT_BYTES;
+ neededSize += keep;
+ #endif /* defined XML_CONTEXT_BYTES */
+ if (neededSize <= bufferLim - buffer) {
+@@ -1689,17 +1700,25 @@ XML_GetBuffer(XML_Parser parser, int len
+ }
+ else {
+ char *newBuf;
+ int bufferSize = (int)(bufferLim - bufferPtr);
+ if (bufferSize == 0)
+ bufferSize = INIT_BUFFER_SIZE;
+ do {
+ bufferSize *= 2;
+- } while (bufferSize < neededSize);
++/* BEGIN MOZILLA CHANGE (prevent infinite loop on overflow) */
++ } while (bufferSize < neededSize && bufferSize > 0);
++/* END MOZILLA CHANGE */
++/* BEGIN MOZILLA CHANGE (sanity check bufferSize) */
++ if (bufferSize <= 0) {
++ errorCode = XML_ERROR_NO_MEMORY;
++ return NULL;
++ }
++/* END MOZILLA CHANGE */
+ newBuf = (char *)MALLOC(bufferSize);
+ if (newBuf == 0) {
+ errorCode = XML_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ bufferLim = newBuf + bufferSize;
+ #ifdef XML_CONTEXT_BYTES
+ if (bufferPtr) {
+