Hello community, here is the log from the commit of package mozilla-nspr for openSUSE:Factory checked in at 2015-11-08 11:24:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mozilla-nspr (Old) and /work/SRC/openSUSE:Factory/.mozilla-nspr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozilla-nspr" Changes: -------- --- /work/SRC/openSUSE:Factory/mozilla-nspr/mozilla-nspr.changes 2015-10-22 12:56:35.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mozilla-nspr.new/mozilla-nspr.changes 2015-11-08 11:24:58.000000000 +0100 @@ -1,0 +2,7 @@ +Sun Oct 25 14:42:59 UTC 2015 - w...@rosenauer.org + +- update to version 4.10.10 (bnc#952810) + * MFSA 2015-133/CVE-2015-7183 (bmo#1205157) + memory corruption issues + +------------------------------------------------------------------- Old: ---- nspr-4.10.9.tar.gz New: ---- nspr-4.10.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozilla-nspr.spec ++++++ --- /var/tmp/diff_new_pack.RZN9XH/_old 2015-11-08 11:25:00.000000000 +0100 +++ /var/tmp/diff_new_pack.RZN9XH/_new 2015-11-08 11:25:00.000000000 +0100 @@ -18,7 +18,7 @@ Name: mozilla-nspr -Version: 4.10.9 +Version: 4.10.10 Release: 0 Summary: Netscape Portable Runtime License: MPL-2.0 ++++++ nspr-4.10.9.tar.gz -> nspr-4.10.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/.hg_archival.txt new/nspr-4.10.10/nspr/.hg_archival.txt --- old/nspr-4.10.9/nspr/.hg_archival.txt 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/.hg_archival.txt 2015-10-16 15:22:19.000000000 +0200 @@ -1,4 +1,4 @@ repo: a4b34919bf34db2ee22acbbc305693c8980b6dc6 -node: 2c9a94fefea664f8a84442fc959b37db119e2e25 +node: 21a7c4a68ca663ae2ba8ff05e12b9379f5108c5d branch: default -tag: NSPR_4_10_9_RTM +tag: NSPR_4_10_10_RTM diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/configure new/nspr-4.10.10/nspr/configure --- old/nspr-4.10.9/nspr/configure 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/configure 2015-10-16 15:22:19.000000000 +0200 @@ -2489,7 +2489,7 @@ MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=10 -MOD_PATCH_VERSION=9 +MOD_PATCH_VERSION=10 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/configure.in new/nspr-4.10.10/nspr/configure.in --- old/nspr-4.10.9/nspr/configure.in 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/configure.in 2015-10-16 15:22:19.000000000 +0200 @@ -16,7 +16,7 @@ dnl ======================================================== MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=10 -MOD_PATCH_VERSION=9 +MOD_PATCH_VERSION=10 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/lib/ds/plarena.c new/nspr-4.10.10/nspr/lib/ds/plarena.c --- old/nspr-4.10.9/nspr/lib/ds/plarena.c 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/lib/ds/plarena.c 2015-10-16 15:22:19.000000000 +0200 @@ -93,6 +93,9 @@ pool->mask = PR_BITMASK(PR_CeilingLog2(align)); pool->first.next = NULL; + /* Set all three addresses in pool->first to the same dummy value. + * These addresses are only compared with each other, but never + * dereferenced. */ pool->first.base = pool->first.avail = pool->first.limit = (PRUword)PL_ARENA_ALIGN(pool, &pool->first + 1); pool->current = &pool->first; @@ -144,10 +147,14 @@ { PLArena *a; char *rp; /* returned pointer */ + PRUint32 nbOld; PR_ASSERT((nb & pool->mask) == 0); + nbOld = nb; nb = (PRUword)PL_ARENA_ALIGN(pool, nb); /* force alignment */ + if (nb < nbOld) + return NULL; /* attempt to allocate from arenas at pool->current */ { @@ -208,6 +215,7 @@ PL_MAKE_MEM_NOACCESS((void*)a->avail, a->limit - a->avail); rp = (char *)a->avail; a->avail += nb; + PR_ASSERT(a->avail <= a->limit); /* the newly allocated arena is linked after pool->current * and becomes pool->current */ a->next = pool->current->next; @@ -230,6 +238,8 @@ { void *newp; + if (PR_UINT32_MAX - size < incr) + return NULL; PL_ARENA_ALLOCATE(newp, pool, size + incr); if (newp) memcpy(newp, p, size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/lib/ds/plarena.h new/nspr-4.10.10/nspr/lib/ds/plarena.h --- old/nspr-4.10.9/nspr/lib/ds/plarena.h 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/lib/ds/plarena.h 2015-10-16 15:22:19.000000000 +0200 @@ -137,34 +137,39 @@ #define PL_ARENA_ALLOCATE(p, pool, nb) \ PR_BEGIN_MACRO \ PLArena *_a = (pool)->current; \ - PRUint32 _nb = PL_ARENA_ALIGN(pool, nb); \ + PRUint32 _nb = PL_ARENA_ALIGN(pool, (PRUint32)nb); \ PRUword _p = _a->avail; \ - PRUword _q = _p + _nb; \ - if (_q > _a->limit) { \ + if (_nb < (PRUint32)nb) { \ + _p = 0; \ + } else if (_nb > (_a->limit - _a->avail)) { \ _p = (PRUword)PL_ArenaAllocate(pool, _nb); \ } else { \ - _a->avail = _q; \ + _a->avail += _nb; \ } \ p = (void *)_p; \ - PL_MAKE_MEM_UNDEFINED(p, nb); \ - PL_ArenaCountAllocation(pool, nb); \ + if (p) { \ + PL_MAKE_MEM_UNDEFINED(p, (PRUint32)nb); \ + PL_ArenaCountAllocation(pool, (PRUint32)nb); \ + } \ PR_END_MACRO #define PL_ARENA_GROW(p, pool, size, incr) \ PR_BEGIN_MACRO \ PLArena *_a = (pool)->current; \ - PRUint32 _incr = PL_ARENA_ALIGN(pool, incr); \ - PRUword _p = _a->avail; \ - PRUword _q = _p + _incr; \ - if (_p == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \ - _q <= _a->limit) { \ - PL_MAKE_MEM_UNDEFINED((unsigned char *)(p) + size, incr); \ - _a->avail = _q; \ - PL_ArenaCountInplaceGrowth(pool, size, incr); \ + PRUint32 _incr = PL_ARENA_ALIGN(pool, (PRUint32)incr); \ + if (_incr < (PRUint32)incr) { \ + p = NULL; \ + } else if (_a->avail == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \ + _incr <= (_a->limit - _a->avail)) { \ + PL_MAKE_MEM_UNDEFINED((unsigned char *)(p) + size, (PRUint32)incr); \ + _a->avail += _incr; \ + PL_ArenaCountInplaceGrowth(pool, size, (PRUint32)incr); \ } else { \ - p = PL_ArenaGrow(pool, p, size, incr); \ + p = PL_ArenaGrow(pool, p, size, (PRUint32)incr); \ + } \ + if (p) {\ + PL_ArenaCountGrowth(pool, size, (PRUint32)incr); \ } \ - PL_ArenaCountGrowth(pool, size, incr); \ PR_END_MACRO #define PL_ARENA_MARK(pool) ((void *) (pool)->current->avail) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/pr/include/md/_linux.cfg new/nspr-4.10.10/nspr/pr/include/md/_linux.cfg --- old/nspr-4.10.9/nspr/pr/include/md/_linux.cfg 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/pr/include/md/_linux.cfg 2015-10-16 15:22:19.000000000 +0200 @@ -508,7 +508,7 @@ #error "Unknown MIPS endianness." #endif -#ifdef _ABI64 +#if _MIPS_SIM == _ABI64 #define IS_64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/pr/include/prinit.h new/nspr-4.10.10/nspr/pr/include/prinit.h --- old/nspr-4.10.9/nspr/pr/include/prinit.h 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/pr/include/prinit.h 2015-10-16 15:22:19.000000000 +0200 @@ -31,10 +31,10 @@ ** The format of the version string is ** "<major version>.<minor version>[.<patch level>] [<Beta>]" */ -#define PR_VERSION "4.10.9" +#define PR_VERSION "4.10.10" #define PR_VMAJOR 4 #define PR_VMINOR 10 -#define PR_VPATCH 9 +#define PR_VPATCH 10 #define PR_BETA PR_FALSE /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.10.9/nspr/pr/tests/vercheck.c new/nspr-4.10.10/nspr/pr/tests/vercheck.c --- old/nspr-4.10.9/nspr/pr/tests/vercheck.c 2015-08-19 17:32:22.000000000 +0200 +++ new/nspr-4.10.10/nspr/pr/tests/vercheck.c 2015-10-16 15:22:19.000000000 +0200 @@ -20,10 +20,10 @@ #include <stdlib.h> /* - * This release (4.10.7) is backward compatible with the + * This release (4.10.10) is backward compatible with the * 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x, 4.5.x, 4.6.x, 4.7.x, * 4.8.x, 4.9.x, 4.10, 4.10.1, 4.10.2, 4.10.3, 4.10.4, - * 4.10.5, 4.10.6, 4.10.7 and 4.10.8 releases. + * 4.10.5, 4.10.6, 4.10.7, 4.10.8, 4.10.9 releases. * It, of course, is compatible with itself. */ static char *compatible_version[] = { @@ -39,7 +39,7 @@ "4.9", "4.9.1", "4.9.2", "4.9.3", "4.9.4", "4.9.5", "4.9.6", "4.10", "4.10.1", "4.10.2", "4.10.3", "4.10.4", - "4.10.5", "4.10.6", "4.10.7", "4.10.8", + "4.10.5", "4.10.6", "4.10.7", "4.10.8", "4.10.9", PR_VERSION }; @@ -55,7 +55,7 @@ "3.0", "3.0.1", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.5", "3.5.1", - "4.10.10", + "4.10.11", "4.11", "4.11.1", "10.0", "11.1", "12.14.20" };