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;
         }

Reply via email to