[packages/glibc] - up to 2.22; fixes CVE-2015-1781, CVE-2014-8121

arekm arekm at pld-linux.org
Wed Aug 5 20:50:55 CEST 2015


commit ed35cb325dd3c676523eaf8d39b6b4f326f6f7b3
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Aug 5 20:50:45 2015 +0200

    - up to 2.22; fixes CVE-2015-1781, CVE-2014-8121

 fix-broken-echo.patch    | 46 ----------------------------------------------
 glibc-locale_fixes.patch |  4 ++--
 glibc-morelocales.patch  | 11 ++++++-----
 glibc-new-charsets.patch | 18 +++---------------
 glibc.spec               | 15 ++++++++-------
 5 files changed, 19 insertions(+), 75 deletions(-)
---
diff --git a/glibc.spec b/glibc.spec
index cc5f469..806af5a 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -27,7 +27,7 @@
 %undefine	with_memusage
 %endif
 
-%define		core_version	2.21
+%define		core_version	2.22
 %define		llh_version	7:2.6.32.1-1
 
 Summary:	GNU libc
@@ -41,12 +41,12 @@ Summary(tr.UTF-8):	GNU libc
 Summary(uk.UTF-8):	GNU libc версії
 Name:		glibc
 Version:	%{core_version}
-Release:	6
+Release:	0.1
 Epoch:		6
 License:	LGPL v2.1+
 Group:		Libraries
 Source0:	http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5:	9cb398828e8f84f57d1f7d5588cf40cd
+# Source0-md5:	e51e02bf552a0a1fbbdc948fb2f5e83c
 Source2:	nscd.init
 Source3:	nscd.sysconfig
 Source4:	nscd.logrotate
@@ -88,7 +88,6 @@ Patch28:	%{name}-locale-C-pld.patch
 Patch29:	%{name}-arm-alignment-fix.patch
 Patch30:	glibc-rh1124987.patch
 
-Patch33:	fix-broken-echo.patch
 Patch38:	1055_all_glibc-resolv-dynamic.patch
 URL:		http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires:	audit-libs-devel}
@@ -988,8 +987,6 @@ exit 1
 %patch29 -p1
 %patch30 -p1
 
-%patch33 -p1
-
 %patch38 -p1
 
 # cleanup backups after patching
@@ -1094,7 +1091,7 @@ install -p glibc-postinst				$RPM_BUILD_ROOT/sbin
 mv -f $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so	$RPM_BUILD_ROOT%{_libdir}
 
 # make symlinks across top-level directories absolute
-for l in BrokenLocale anl cidn crypt dl m nsl resolv rt thread_db util; do
+for l in BrokenLocale anl cidn crypt dl mvec nsl resolv rt thread_db util; do
 	test -L $RPM_BUILD_ROOT%{_libdir}/lib${l}.so || exit 1
 	%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib${l}.so
 	ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/lib${l}.so.*) $RPM_BUILD_ROOT%{_libdir}/lib${l}.so
@@ -1416,6 +1413,8 @@ fi
 %else
 %attr(755,root,root) /%{_lib}/libm.so.6
 %endif
+%attr(755,root,root) /%{_lib}/libmvec-%{core_version}.so
+%attr(755,root,root) /%{_lib}/libmvec.so.1
 %attr(755,root,root) /%{_lib}/libnsl-%{core_version}.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libnsl.so.1.1
@@ -1800,6 +1799,7 @@ fi
 %attr(755,root,root) %{_libdir}/libcidn.so
 %attr(755,root,root) %{_libdir}/libdl.so
 %attr(755,root,root) %{_libdir}/libm.so
+%attr(755,root,root) %{_libdir}/libmvec.so
 %attr(755,root,root) %{_libdir}/libnsl.so
 %attr(755,root,root) %{_libdir}/libpcprofile.so
 %attr(755,root,root) %{_libdir}/libresolv.so
@@ -1939,6 +1939,7 @@ fi
 %{_libdir}/libdl.a
 %{_libdir}/libm.a
 %{_libdir}/libmcheck.a
+%{_libdir}/libmvec.a
 %{_libdir}/libnsl.a
 %{_libdir}/libpthread.a
 %{_libdir}/libresolv.a
diff --git a/fix-broken-echo.patch b/fix-broken-echo.patch
deleted file mode 100644
index fe0f3f4..0000000
--- a/fix-broken-echo.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- glibc-2.20/sysdeps/unix/make-syscalls.sh.orig	2014-09-07 10:09:09.000000000 +0200
-+++ glibc-2.20/sysdeps/unix/make-syscalls.sh	2014-12-21 17:54:48.973388216 +0100
-@@ -276,28 +276,33 @@
-     vdso_symbol="${vdso_syscall%@*}"
-     vdso_symver="${vdso_syscall#*@}"
-     vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'`
--    echo "\
-+    cat <<EOF
-+
- \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\
--		\$(..)sysdeps/unix/make-syscalls.sh\
-+		\$(..)sysdeps/unix/make-syscalls.sh
- 	\$(make-target-directory)
- 	(echo '#include <dl-vdso.h>'; \\
--	 echo 'extern void *${strong}_ifunc (void) __asm (\"${strong}\");'; \\
-+	 echo 'extern void *${strong}_ifunc (void) __asm ("${strong}");'; \\
- 	 echo 'void *'; \\
- 	 echo '${strong}_ifunc (void)'; \\
- 	 echo '{'; \\
- 	 echo '  PREPARE_VERSION_KNOWN (symver, ${vdso_symver});'; \\
--	 echo '  return _dl_vdso_vsym (\"${vdso_symbol}\", &symver);'; \\
-+	 echo '  return _dl_vdso_vsym ("${vdso_symbol}", &symver);'; \\
- 	 echo '}'; \\
--	 echo 'asm (\".type ${strong}, %gnu_indirect_function\");'; \\"
-+	 echo 'asm (".type ${strong}, %gnu_indirect_function");'; \\
-+EOF
-     # This is doing "libc_hidden_def (${strong})", but the compiler
-     # doesn't know that we've defined ${strong} in the same file, so
-     # we can't do it the normal way.
--    echo "\
--	 echo 'asm (\".globl __GI_${strong}\\n\"'; \\
--	 echo '     \"__GI_${strong} = ${strong}\");'; \\"
-+    cat <<EOF
-+	 echo 'asm (".globl __GI_${strong}");'; \\
-+	 echo 'asm ("__GI_${strong} = ${strong}");'; \\
-+EOF
-     emit_weak_aliases
--    echo '	) | $(compile-stdin.c) '"\
--\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
-+    cat <<EOF
-+	) | \$(compile-stdin.c) \
-+\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))
-+EOF
-   fi
- 
-   if test $shared_only = t; then
diff --git a/glibc-locale_fixes.patch b/glibc-locale_fixes.patch
index 1f018ed..1d0350b 100644
--- a/glibc-locale_fixes.patch
+++ b/glibc-locale_fixes.patch
@@ -587,7 +587,7 @@
  LC_NAME
  % FIXME
  
--name_fmt  ""
+-name_fmt  " "
 +name_fmt  "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
  % name_gen	"FIXME"
  % name_miss	"FIXME"
@@ -608,7 +608,7 @@
  
  LC_NAME
  % FIXME
--name_fmt	""
+-name_fmt	" "
 +name_fmt	"<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
  % name_gen	"FIXME"
  % name_miss	"FIXME"
diff --git a/glibc-morelocales.patch b/glibc-morelocales.patch
index 953d3b1..54a0d9b 100644
--- a/glibc-morelocales.patch
+++ b/glibc-morelocales.patch
@@ -6500,7 +6500,7 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
  ber_MA/UTF-8 \
  bg_BG.UTF-8/UTF-8 \
  bg_BG/CP1251 \
- bh_IN.UTF-8/UTF-8 \
+ bhb_IN.UTF-8/UTF-8 \
  bho_IN/UTF-8 \
  bn_BD/UTF-8 \
  bn_IN/UTF-8 \
@@ -6712,7 +6712,7 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
  ss_ZA/UTF-8 \
  st_ZA.UTF-8/UTF-8 \
  st_ZA/ISO-8859-1 \
-@@ -396,14 +455,20 @@
+@@ -396,15 +455,21 @@
  sv_FI at euro/ISO-8859-15 \
  sv_SE.UTF-8/UTF-8 \
  sv_SE/ISO-8859-1 \
@@ -6725,6 +6725,7 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
  szl_PL/UTF-8 \
  ta_IN/UTF-8 \
  ta_LK/UTF-8 \
+ tcy_IN.UTF-8/UTF-8 \
  te_IN/UTF-8 \
 +tg_TJ.KOI8-K/KOI8-K \
  tg_TJ.UTF-8/UTF-8 \
@@ -6749,10 +6750,10 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
 +tt_RU.TATAR-CYR/TATAR-CYR \
  tt_RU/UTF-8 \
  tt_RU at iqtelif/UTF-8 \
- tu_IN.UTF-8/UTF-8 \
  ug_CN/UTF-8 \
  uk_UA.UTF-8/UTF-8 \
  uk_UA/KOI8-U \
+ unm_US/UTF-8 \
 @@ -426,8 +495,9 @@
  uk_UA/KOI8-U \
  unm_US/UTF-8 \
@@ -6765,7 +6766,7 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
  ve_ZA/UTF-8 \
 --- glibc-2.19/locale/iso-639.def.orig	2014-02-07 10:04:38.000000000 +0100
 +++ glibc-2.19/locale/iso-639.def	2014-02-13 20:30:45.341452266 +0100
-@@ -238,6 +239,7 @@
+@@ -238,6 +238,7 @@
  DEFINE_LANGUAGE_CODE ("Kanuri", kr, kau, kau)
  DEFINE_LANGUAGE_CODE3 ("Kara-Kalpak", kaa, kaa)
  DEFINE_LANGUAGE_CODE3 ("Karachay-Balkar", krc, krc)
@@ -6773,7 +6774,7 @@ diff -Nur glibc/localedata/locales.orig/shn_MM glibc/localedata/locales/shn_MM
  DEFINE_LANGUAGE_CODE3 ("Karelian", krl, krl)
  DEFINE_LANGUAGE_CODE3 ("Karen", kar, kar)
  DEFINE_LANGUAGE_CODE ("Kashmiri", ks, kas, kas)
-@@ -400,6 +402,7 @@
+@@ -400,6 +401,7 @@
  DEFINE_LANGUAGE_CODE3 ("Samaritan Aramaic", sam, sam)
  DEFINE_LANGUAGE_CODE3 ("Sami languages (Other)", smi, smi)
  DEFINE_LANGUAGE_CODE ("Samoan", sm, smo, smo)
diff --git a/glibc-new-charsets.patch b/glibc-new-charsets.patch
index 02b628b..69554ea 100644
--- a/glibc-new-charsets.patch
+++ b/glibc-new-charsets.patch
@@ -742,21 +742,9 @@ diff -uNr libc/localedata/charmaps/ISIRI-3342 libc.charsets/localedata/charmaps/
 +%      the change in the mirroring behaviour of U+00AB and U+00BB
 +%      between versions 2.1.5 and 2.1.8 of the Unicode Standard.
 +
- % I think the mnemonic for upper space (0xA0) should be different from
- % lower space (0x20). Because the semantics are different, although they
- % are mapped to a single Unicode character. This is specially important
-@@ -18,9 +27,9 @@
- % invented on the pattern of Unicode character names. --RP
- %
- % NOTE: Some entries were missing in the mnemonics.ds file; We invented our
--% own. Those are: <zwnj>, <zwj>, <!+>, <Rl>, <%+>, <.+>, <,f>, <(+>,
-+% own. Those are: <zwnj>, <zwj>, <!+>, <Rl>, <%+>, <.a>, <,f>, <(+>,
- % <)+>, <*X+>, <+f>, <-f>, <.f>, <//f>, <0f>..<9f>, <:f>, <<f>, <=f>,
--% </>f>, <kf>, <yf>, <)/>+>, <<(+>, <!)+>, <(!+>, <<<+>, </>/>+>, <*+>,
-+% </>f>, <yf>, <)/>+>, <<(+>, <!)+>, <(!+>, <<<+>, </>/>+>, <*+>,
- % <!!+>, and <////+>. Also, all character sequences
- % <NU>..<US>, <SP>, <DT> have counter-parts <NU+>..<US+>, <SP+>, <DT+>
-  
+ % Please note that the Unicode equivalents of the Persian part (0x80..0xFF)
+ % are for compatiblity purposes only. I have also changed the fourth
+ % column consisting of names to reflect the difference. The names are
 @@ -153,6 +162,7 @@
  <U007D>     /x7d         RIGHT CURLY BRACKET
  <U007E>     /x7e         TILDE
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/glibc.git/commitdiff/ed35cb325dd3c676523eaf8d39b6b4f326f6f7b3



More information about the pld-cvs-commit mailing list