Resolves: sw14134

- Fix iconv() segfault when the invalid multibyte character 0xffff is input when
  converting from IBM930.
This commit is contained in:
Patsy Franklin 2012-06-01 15:08:41 -04:00
parent 200aebfe55
commit 1559b7b925
2 changed files with 35 additions and 2 deletions

25
glibc-rh823905.patch Normal file
View File

@ -0,0 +1,25 @@
diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
index 25a9be0..6f758eb 100644
--- a/iconvdata/ibm930.c
+++ b/iconvdata/ibm930.c
@@ -162,7 +162,8 @@ enum
while (ch > rp2->end) \
++rp2; \
\
- if (__builtin_expect (ch < rp2->start, 0) \
+ if (__builtin_expect (rp2->start == 0xffff, 0) \
+ || __builtin_expect (ch < rp2->start, 0) \
|| (res = __ibm930db_to_ucs4[ch + rp2->idx], \
__builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \
{ \
@@ -215,7 +216,8 @@ enum
while (ch > rp2->end) \
++rp2; \
\
- if (__builtin_expect (ch < rp2->start, 0) \
+ if (__builtin_expect (rp2->start == 0xffff, 0) \
+ || __builtin_expect (ch < rp2->start, 0) \
|| (cp = __ucs4_to_ibm930db[ch + rp2->idx], \
__builtin_expect (cp[0], L'\1')== L'\0' && ch != '\0')) \
{ \

View File

@ -28,7 +28,7 @@
Summary: The GNU libc libraries Summary: The GNU libc libraries
Name: glibc Name: glibc
Version: %{glibcversion} Version: %{glibcversion}
Release: 6%{?dist} Release: 7%{?dist}
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs # Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@ -173,6 +173,9 @@ Patch2034: %{name}-rh804630.patch
# Upstream BZ 14185 # Upstream BZ 14185
Patch2035: %{name}-rh819430.patch Patch2035: %{name}-rh819430.patch
# Upstream BZ 14134
Patch2036: %{name}-rh823905.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Obsoletes: glibc-profile < 2.4 Obsoletes: glibc-profile < 2.4
Obsoletes: nss_db Obsoletes: nss_db
@ -423,6 +426,7 @@ rm -rf %{glibcportsdir}
%patch2034 -p1 %patch2034 -p1
%patch0035 -p1 %patch0035 -p1
%patch2035 -p1 %patch2035 -p1
%patch2036 -p1
# A lot of programs still misuse memcpy when they have to use # A lot of programs still misuse memcpy when they have to use
# memmove. The memcpy implementation below is not tolerant at # memmove. The memcpy implementation below is not tolerant at
@ -1299,6 +1303,10 @@ rm -f *.filelist*
%endif %endif
%changelog %changelog
* Fri Jun 1 2012 Patsy Franklin <patsy@redhat.com> - 2.15.90-7
- Fix iconv() segfault when the invalid multibyte character 0xffff is input when
converting from IBM930 (823905)
* Thu May 31 2012 Patsy Franklin <patsy@redhat.com> - 2.15.90-6 * Thu May 31 2012 Patsy Franklin <patsy@redhat.com> - 2.15.90-6
- Fix fnmatch() when '*' wildcard is applied on a file name containing multibyte chars. (#819430) - Fix fnmatch() when '*' wildcard is applied on a file name containing multibyte chars. (#819430)