Hello community, here is the log from the commit of package scim for openSUSE:Factory checked in at Tue Jun 9 17:47:47 CEST 2009. -------- --- scim/scim.changes 2009-06-04 09:54:40.000000000 +0200 +++ /mounts/work_src_done/STABLE/scim/scim.changes 2009-06-09 13:03:51.000000000 +0200 @@ -1,0 +2,6 @@ +Tue Jun 9 13:02:15 CEST 2009 - tiwai@suse.de + +- fix crash with Firefox and glibc-2.10, due to a mysterious + broken free() detection with setpwent(). + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- scim-no-setpwent.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ scim.spec ++++++ --- /var/tmp/diff_new_pack.o20452/_old 2009-06-09 17:47:31.000000000 +0200 +++ /var/tmp/diff_new_pack.o20452/_new 2009-06-09 17:47:31.000000000 +0200 @@ -24,7 +24,7 @@ BuildRequires: libexpat-devel Summary: Smart Chinese/Common Input Method platform Version: 1.4.7 -Release: 168 +Release: 169 License: LGPL v2.1 or later Group: System/I18n/Chinese AutoReqProv: on @@ -49,6 +49,7 @@ Patch1: configs.patch Patch248159: bugzilla-248159-scim-launcher-segfault.patch Patch2: scim-gcc4.4-fixes.diff +Patch3: scim-no-setpwent.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %define gnome_prefix %(pkg-config --variable=prefix libgnomeui-2.0) @@ -103,6 +104,9 @@ %patch1 -p1 %patch248159 -p1 %patch2 -p1 +%if %suse_version > 1110 +%patch3 -p1 +%endif find . -type f | xargs chmod u+w UTF_8_LOCALES=$(locale -a | grep utf8 | perl -p -e "s/utf8/UTF-8/; s/\n/,/; " | perl -p -e "s/,$//") perl -pi -e "s/\/SupportedUnicodeLocales =.*/\/SupportedUnicodeLocales = $UTF_8_LOCALES/" ./configs/global @@ -312,6 +316,9 @@ %{_includedir}/scim-1.0 %changelog +* Tue Jun 09 2009 tiwai@suse.de +- fix crash with Firefox and glibc-2.10, due to a mysterious + broken free() detection with setpwent(). * Thu Jun 04 2009 tiwai@suse.de - fix build with gcc4.4 - fix build errors on older distros due to lack libexpat ++++++ scim-no-setpwent.diff ++++++ Calling setpwent() in _init causes mysterious a free() corruption detection in glibc when started on Firefox with glibc-2.10. As an adhoc workaround, just let getpw*() call alone without setpwent() & co. --- src/scim_utility.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/src/scim_utility.cpp +++ b/src/scim_utility.cpp @@ -547,9 +547,9 @@ struct passwd *pw; - setpwent (); + // setpwent (); pw = getpwuid (getuid ()); - endpwent (); + // endpwent (); if (pw) { home_dir = pw->pw_dir; @@ -568,9 +568,9 @@ struct passwd *pw; const char *user_name; - setpwent (); + // setpwent (); pw = getpwuid (getuid ()); - endpwent (); + // endpwent (); if (pw && pw->pw_name) return String (pw->pw_name); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org