Hello community,

here is the log from the commit of package glibc for openSUSE:Factory checked 
in at 2014-09-03 18:20:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glibc (Old)
 and      /work/SRC/openSUSE:Factory/.glibc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "glibc"

Changes:
--------
--- /work/SRC/openSUSE:Factory/glibc/glibc-testsuite.changes    2014-08-29 
17:42:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes       
2014-09-03 18:20:36.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Sep  2 07:52:36 UTC 2014 - sch...@suse.de
+
+- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM
+  gconv modules (CVE-2014-6040, bnc#894553, BZ #17325)
+
+-------------------------------------------------------------------
glibc-utils.changes: same change
glibc.changes: same change

New:
----
  iconv-ibm-sentinel-check.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ glibc-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.jcuVYT/_old  2014-09-03 18:20:38.000000000 +0200
+++ /var/tmp/diff_new_pack.jcuVYT/_new  2014-09-03 18:20:38.000000000 +0200
@@ -270,6 +270,8 @@
 Patch1017:      ppc64le-profiling.patch
 # PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change 
(bnc#887228)
 Patch1018:      s390-revert-abi-change.patch
+# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187)
+Patch1019:      disable-gconv-translit-modules.patch
 
 ### 
 # Patches awaiting upstream approval
@@ -290,8 +292,8 @@
 Patch2006:      ibm93x-redundant-shift-si.patch
 # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in 
pthread_mutexattr_gettype (BZ #15790)
 Patch2007:      pthread-mutexattr-gettype-kind.patch
-# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187)
-Patch2008:      disable-gconv-translit-modules.patch
+# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ 
#17325)
+Patch2008:      iconv-ibm-sentinel-check.patch
 
 # Non-glibc patches
 # PATCH-FIX-OPENSUSE Remove debianisms from manpages
@@ -511,6 +513,7 @@
 %patch1016 -p1
 %patch1017 -p1
 %patch1018 -p1
+%patch1019 -p1
 
 %patch2000 -p1
 %patch2001 -p1

glibc-utils.spec: same change
++++++ glibc.spec ++++++
--- /var/tmp/diff_new_pack.jcuVYT/_old  2014-09-03 18:20:38.000000000 +0200
+++ /var/tmp/diff_new_pack.jcuVYT/_new  2014-09-03 18:20:38.000000000 +0200
@@ -270,6 +270,8 @@
 Patch1017:      ppc64le-profiling.patch
 # PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change 
(bnc#887228)
 Patch1018:      s390-revert-abi-change.patch
+# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187)
+Patch1019:      disable-gconv-translit-modules.patch
 
 ### 
 # Patches awaiting upstream approval
@@ -290,8 +292,8 @@
 Patch2006:      ibm93x-redundant-shift-si.patch
 # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in 
pthread_mutexattr_gettype (BZ #15790)
 Patch2007:      pthread-mutexattr-gettype-kind.patch
-# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187)
-Patch2008:      disable-gconv-translit-modules.patch
+# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ 
#17325)
+Patch2008:      iconv-ibm-sentinel-check.patch
 
 # Non-glibc patches
 # PATCH-FIX-OPENSUSE Remove debianisms from manpages
@@ -511,6 +513,7 @@
 %patch1016 -p1
 %patch1017 -p1
 %patch1018 -p1
+%patch1019 -p1
 
 %patch2000 -p1
 %patch2001 -p1



++++++ iconv-ibm-sentinel-check.patch ++++++
2014-08-29  Florian Weimer  <fwei...@redhat.com>

        [BZ #17325]
        * iconvdata/ibm1364.c (BODY): Fix check for sentinel.
        * iconvdata/ibm932.c (BODY): Replace invalid sentinel check with
        assert.
        * iconvdata/ibm933.c (BODY): Fix check for sentinel.
        * iconvdata/ibm935.c (BODY): Likewise.
        * iconvdata/ibm937.c (BODY): Likewise.
        * iconvdata/ibm939.c (BODY): Likewise.
        * iconvdata/ibm943.c (BODY): Replace invalid sentinel check with
        assert.
        * iconvdata/Makefile (iconv-test.out): Pass module list to test
        script.
        * iconvdata/run-iconv-test.sh: New test loop for checking for
        decoder crashers.

Index: glibc-2.19/iconvdata/Makefile
===================================================================
--- glibc-2.19.orig/iconvdata/Makefile
+++ glibc-2.19/iconvdata/Makefile
@@ -302,6 +302,7 @@ $(objpfx)bug-iconv10.out: $(objpfx)gconv
 $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
                         $(addprefix $(objpfx),$(modules.so)) \
                         $(common-objdir)/iconv/iconv_prog TESTS
+       iconv_modules="$(modules)" \
        $(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@
 
 $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
Index: glibc-2.19/iconvdata/ibm1364.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm1364.c
+++ glibc-2.19/iconvdata/ibm1364.c
@@ -220,7 +220,8 @@ enum
          ++rp2;                                                              \
                                                                              \
        uint32_t res;                                                         \
-       if (__builtin_expect (ch < rp2->start, 0)                             \
+       if (__builtin_expect (rp2->start == 0xffff, 0)                        \
+           || __builtin_expect (ch < rp2->start, 0)                          \
            || (res = DB_TO_UCS4[ch + rp2->idx],                              \
                __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
          {                                                                   \
Index: glibc-2.19/iconvdata/ibm932.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm932.c
+++ glibc-2.19/iconvdata/ibm932.c
@@ -73,11 +73,12 @@
          }                                                                   \
                                                                              \
        ch = (ch * 0x100) + inptr[1];                                         \
+       /* ch was less than 0xfd.  */                                         \
+       assert (ch < 0xfd00);                                                 \
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
-           || __builtin_expect (ch < rp2->start, 0)                          \
+       if (__builtin_expect (ch < rp2->start, 0)                             \
            || (res = __ibm932db_to_ucs4[ch + rp2->idx],                      \
            __builtin_expect (res, '\1') == 0 && ch !=0))                     \
          {                                                                   \
Index: glibc-2.19/iconvdata/ibm933.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm933.c
+++ glibc-2.19/iconvdata/ibm933.c
@@ -161,7 +161,7 @@ enum
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
+       if (__builtin_expect (rp2->start == 0xffff, 0)                        \
            || __builtin_expect (ch < rp2->start, 0)                          \
            || (res = __ibm933db_to_ucs4[ch + rp2->idx],                      \
                __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
Index: glibc-2.19/iconvdata/ibm935.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm935.c
+++ glibc-2.19/iconvdata/ibm935.c
@@ -161,7 +161,7 @@ enum
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
+       if (__builtin_expect (rp2->start == 0xffff, 0)                        \
            || __builtin_expect (ch < rp2->start, 0)                          \
            || (res = __ibm935db_to_ucs4[ch + rp2->idx],                      \
                __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
Index: glibc-2.19/iconvdata/ibm937.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm937.c
+++ glibc-2.19/iconvdata/ibm937.c
@@ -161,7 +161,7 @@ enum
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
+       if (__builtin_expect (rp2->start == 0xffff, 0)                        \
            || __builtin_expect (ch < rp2->start, 0)                          \
            || (res = __ibm937db_to_ucs4[ch + rp2->idx],                      \
                __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
Index: glibc-2.19/iconvdata/ibm939.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm939.c
+++ glibc-2.19/iconvdata/ibm939.c
@@ -161,7 +161,7 @@ enum
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
+       if (__builtin_expect (rp2->start == 0xffff, 0)                        \
            || __builtin_expect (ch < rp2->start, 0)                          \
            || (res = __ibm939db_to_ucs4[ch + rp2->idx],                      \
                __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
Index: glibc-2.19/iconvdata/ibm943.c
===================================================================
--- glibc-2.19.orig/iconvdata/ibm943.c
+++ glibc-2.19/iconvdata/ibm943.c
@@ -74,11 +74,12 @@
          }                                                                   \
                                                                              \
        ch = (ch * 0x100) + inptr[1];                                         \
+       /* ch was less than 0xfd.  */                                         \
+       assert (ch < 0xfd00);                                                 \
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
-           || __builtin_expect (ch < rp2->start, 0)                          \
+       if (__builtin_expect (ch < rp2->start, 0)                             \
            || (res = __ibm943db_to_ucs4[ch + rp2->idx],                      \
            __builtin_expect (res, '\1') == 0 && ch !=0))                     \
          {                                                                   \
Index: glibc-2.19/iconvdata/run-iconv-test.sh
===================================================================
--- glibc-2.19.orig/iconvdata/run-iconv-test.sh
+++ glibc-2.19/iconvdata/run-iconv-test.sh
@@ -188,6 +188,24 @@ while read utf8 from filename; do
 
 done < TESTS2
 
+# Check for crashes in decoders.
+printf '\016\377\377\377\377\377\377\377' > $temp1
+for from in $iconv_modules ; do
+    echo $ac_n "test decoder $from $ac_c"
+    PROG=`eval echo $ICONV`
+    if $PROG < $temp1 >/dev/null 2>&1 ; then
+       : # fall through
+    else
+       status=$?
+       if test $status -gt 1 ; then
+           echo "/FAILED"
+           failed=1
+           continue
+       fi
+    fi
+    echo "OK"
+done
+
 exit $failed
 # Local Variables:
 #  mode:shell-script
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to