Hello community, here is the log from the commit of package ki18n for openSUSE:Factory checked in at 2016-05-19 12:07:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ki18n (Old) and /work/SRC/openSUSE:Factory/.ki18n.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ki18n" Changes: -------- --- /work/SRC/openSUSE:Factory/ki18n/ki18n.changes 2016-04-12 19:18:12.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ki18n.new/ki18n.changes 2016-05-19 12:07:39.000000000 +0200 @@ -1,0 +2,8 @@ +Sat May 7 18:31:57 UTC 2016 - [email protected] + +- Update to 5.22.0 (boo#980066) + * libgettext: Fix potential use-after-free using non-g++ compilers + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.22.0.php + +------------------------------------------------------------------- Old: ---- ki18n-5.21.0.tar.xz New: ---- ki18n-5.22.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ki18n.spec ++++++ --- /var/tmp/diff_new_pack.1Xl85U/_old 2016-05-19 12:07:40.000000000 +0200 +++ /var/tmp/diff_new_pack.1Xl85U/_new 2016-05-19 12:07:40.000000000 +0200 @@ -18,9 +18,9 @@ %bcond_without lang %define lname libKF5I18n5 -%define _tar_path 5.21 +%define _tar_path 5.22 Name: ki18n -Version: 5.21.0 +Version: 5.22.0 Release: 0 BuildRequires: cmake >= 2.8.12 BuildRequires: extra-cmake-modules >= %{_tar_path} ++++++ ki18n-5.21.0.tar.xz -> ki18n-5.22.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-5.21.0/CMakeLists.txt new/ki18n-5.22.0/CMakeLists.txt --- old/ki18n-5.21.0/CMakeLists.txt 2016-04-03 22:53:40.000000000 +0200 +++ new/ki18n-5.22.0/CMakeLists.txt 2016-05-07 17:14:29.000000000 +0200 @@ -4,7 +4,7 @@ # ECM setup include(FeatureSummary) -find_package(ECM 5.21.0 NO_MODULE) +find_package(ECM 5.22.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -16,7 +16,7 @@ include(ECMSetupVersion) include(ECMGenerateHeaders) -set(KF5_VERSION "5.21.0") # handled by release scripts +set(KF5_VERSION "5.22.0") # handled by release scripts ecm_setup_version( ${KF5_VERSION} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-5.21.0/src/gettext.h new/ki18n-5.22.0/src/gettext.h --- old/ki18n-5.21.0/src/gettext.h 2016-04-03 22:53:40.000000000 +0200 +++ new/ki18n-5.22.0/src/gettext.h 2016-05-07 17:14:29.000000000 +0200 @@ -110,6 +110,7 @@ size_t msgctxt_len = strlen(msgctxt) + 1; size_t msgid_len = strlen(msgid) + 1; const char *translation; + int translation_found; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else @@ -125,12 +126,14 @@ msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy(msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dgettext(domain, msg_ctxt_id); + /* Test must occur before msg_ctxt_id freed */ + translation_found = translation != msg_ctxt_id; #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) { free(msg_ctxt_id); } #endif - if (translation != msg_ctxt_id) { + if (translation_found) { return translation; } } @@ -160,6 +163,7 @@ #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else + int translation_found; char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof(buf) @@ -172,12 +176,14 @@ msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy(msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dngettext(domain, msg_ctxt_id, msgid_plural, n); + /* Test must occur before msg_ctxt_id freed */ + translation_found = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) { free(msg_ctxt_id); } #endif - if (!(translation == msg_ctxt_id || translation == msgid_plural)) { + if (translation_found) { return translation; } }
