Resolves: #2081055 Avoid to unref m_engines with double run

This commit is contained in:
Takao Fujiwara 2022-11-03 09:31:07 +09:00
parent 3e0a79049c
commit b772623e2e
3 changed files with 45 additions and 11 deletions

View File

@ -1,6 +1,6 @@
From c093fec83da277c79f31e09b1b910d35bd4135c8 Mon Sep 17 00:00:00 2001
From f6d31621404dc8716bddd0588402fbdde4f5fb73 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 25 Jun 2022 19:46:01 +0900
Date: Thu, 3 Nov 2022 08:59:41 +0900
Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in()
rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in
@ -238,7 +238,7 @@ index fd1f34fb..57c061ba 100644
/* FIXME: set destroy callback ? */
g_task_return_pointer (data->task, engine, NULL);
diff --git a/client/x11/main.c b/client/x11/main.c
index fe30c1d6..49595b6d 100644
index 6057cc03..12e9012c 100644
--- a/client/x11/main.c
+++ b/client/x11/main.c
@@ -45,6 +45,7 @@
@ -249,7 +249,7 @@ index fe30c1d6..49595b6d 100644
#include <getopt.h>
@@ -1121,7 +1122,12 @@ _atexit_cb ()
@@ -1148,7 +1149,12 @@ _atexit_cb ()
static void
_sighandler (int sig)
{
@ -296,7 +296,7 @@ index a6f2e8e6..b7a04081 100644
m_panel.load_settings();
}
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
index a4529c88..29a70dd5 100644
index 9400e9ba..2ecbdac1 100644
--- a/ui/gtk3/switcher.vala
+++ b/ui/gtk3/switcher.vala
@@ -140,8 +140,8 @@ class Switcher : Gtk.Window {
@ -308,9 +308,9 @@ index a4529c88..29a70dd5 100644
+ assert(m_loop == null);
+ assert(index < engines.length);
m_is_running = true;
m_keyval = keyval;
@@ -198,16 +198,18 @@ class Switcher : Gtk.Window {
if (m_is_running)
return index;
@@ -200,16 +200,18 @@ class Switcher : Gtk.Window {
null,
event,
null);
@ -338,7 +338,7 @@ index a4529c88..29a70dd5 100644
#else
Gdk.Device device = event.get_device();
if (device == null) {
@@ -243,30 +245,41 @@ class Switcher : Gtk.Window {
@@ -245,30 +247,41 @@ class Switcher : Gtk.Window {
Gdk.EventMask.KEY_RELEASE_MASK,
null,
Gdk.CURRENT_TIME);
@ -400,5 +400,5 @@ index a4529c88..29a70dd5 100644
#if VALA_0_34
seat.ungrab();
--
2.35.3
2.37.3

View File

@ -289,3 +289,32 @@ index 7981de38..28ae04ad 100644
--
2.37.3
From cd621f8b82c80a174cd880cb27f27d7ccb9cb4d4 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 3 Nov 2022 08:36:17 +0900
Subject: [PATCH] ui/gtk3/switcher: Avoid to unref m_engines with double run
m_engines could be a buffer overflow if switcher.run() is called
again and m_engines is unrefed durling showing the swicher popup.
BUG=rhbz#2081055
---
ui/gtk3/switcher.vala | 2 ++
1 file changed, 2 insertions(+)
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
index a4529c88..9400e9ba 100644
--- a/ui/gtk3/switcher.vala
+++ b/ui/gtk3/switcher.vala
@@ -143,6 +143,8 @@ class Switcher : Gtk.Window {
assert (m_loop == null);
assert (index < engines.length);
+ if (m_is_running)
+ return index;
m_is_running = true;
m_keyval = keyval;
m_modifiers = state;
--
2.37.3

View File

@ -39,7 +39,7 @@
Name: ibus
Version: 1.5.27
Release: 3%{?dist}
Release: 4%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
URL: https://github.com/ibus/%name/wiki
@ -301,6 +301,7 @@ fi
#autoreconf -f -i -v
#make -C ui/gtk3 maintainer-clean-generic
#make -C tools maintainer-clean-generic
autoreconf -f -i -v
%configure \
--disable-static \
--enable-gtk2 \
@ -322,6 +323,7 @@ fi
--enable-install-tests \
%{nil}
make -C ui/gtk3 maintainer-clean-generic
%make_build
%install
@ -521,6 +523,9 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
* Thu Nov 03 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.27-4
- Resolves: #2081055 Avoid to unref m_engines with double run
* Mon Sep 19 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.27-3
- Update ibus_input_context_set_surrounding_text for a global IC
- Fix CI