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 - wr@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