Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ibus-libpinyin for openSUSE:Factory checked in at 2026-02-01 22:05:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ibus-libpinyin (Old) and /work/SRC/openSUSE:Factory/.ibus-libpinyin.new.1995 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ibus-libpinyin" Sun Feb 1 22:05:39 2026 rev:49 rq:1330256 version:1.16.5 Changes: -------- --- /work/SRC/openSUSE:Factory/ibus-libpinyin/ibus-libpinyin.changes 2026-01-26 11:05:08.433069319 +0100 +++ /work/SRC/openSUSE:Factory/.ibus-libpinyin.new.1995/ibus-libpinyin.changes 2026-02-01 22:06:08.918448840 +0100 @@ -1,0 +2,6 @@ +Sun Feb 1 14:02:56 UTC 2026 - Hillwood Yang <[email protected]> + +- Add PYPEnglishCandidates-fix-vector-iterator-invalidation.patch, fix a + crash bug (boo#1257531, gh#libpinyin/ibus-libpinyin#549) + +------------------------------------------------------------------- New: ---- PYPEnglishCandidates-fix-vector-iterator-invalidation.patch ----------(New B)---------- New: - Add PYPEnglishCandidates-fix-vector-iterator-invalidation.patch, fix a crash bug (boo#1257531, gh#libpinyin/ibus-libpinyin#549) ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ibus-libpinyin.spec ++++++ --- /var/tmp/diff_new_pack.az3tbz/_old 2026-02-01 22:06:09.538474733 +0100 +++ /var/tmp/diff_new_pack.az3tbz/_new 2026-02-01 22:06:09.542474901 +0100 @@ -39,6 +39,9 @@ Group: System/I18n/Chinese URL: https://github.com/libpinyin/ibus-libpinyin Source: https://github.com/libpinyin/ibus-libpinyin/releases/download/%{version}/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM PYPEnglishCandidates-fix-vector-iterator-invalidation.patch [email protected] +# Fix a crash bug (boo#1257531, gh#libpinyin/ibus-libpinyin#549) +Patch0: PYPEnglishCandidates-fix-vector-iterator-invalidation.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gettext-devel ++++++ PYPEnglishCandidates-fix-vector-iterator-invalidation.patch ++++++ >From 74916128a0a7dc6afdc7a0dbbe4e1a501d357531 Mon Sep 17 00:00:00 2001 From: Hillwood Yang <[email protected]> Date: Sun, 11 Jan 2026 20:22:05 +0800 Subject: [PATCH] Fix a crash issue https://github.com/libpinyin/ibus-libpinyin/issues/549 Fix potential iterator undefined behavior in PYPEnglishCandidates.cc by replacing iterator-based insertion with index-based insertion into the candidates vector. --- src/PYPEnglishCandidates.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/PYPEnglishCandidates.cc b/src/PYPEnglishCandidates.cc index 0da60a99..94bbe22d 100644 --- a/src/PYPEnglishCandidates.cc +++ b/src/PYPEnglishCandidates.cc @@ -49,8 +49,9 @@ EnglishCandidates::processCandidates (std::vector<EnhancedCandidate> & candidate const char *prefix = m_editor->m_text.c_str (); std::vector<std::string> words; - std::vector<EnhancedCandidate>::iterator pos; - for (pos = candidates.begin (); pos != candidates.end (); ++pos) { + // Find the insertion position + size_t insert_index = 0; + for (auto pos = candidates.begin (); pos != candidates.end (); ++pos, ++insert_index) { if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type && CANDIDATE_LONGER != pos->m_candidate_type && CANDIDATE_LONGER_USER != pos->m_candidate_type) @@ -72,7 +73,9 @@ EnglishCandidates::processCandidates (std::vector<EnhancedCandidate> & candidate enhanced.m_candidate_id = count; enhanced.m_display_string = *iter; - candidates.insert (pos + count, enhanced); + + // Use an integer index to avoid iterator UB + candidates.insert(candidates.begin() + insert_index + count, enhanced); ++count; }
