public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Fix memory leaks in error handlings
@ 2026-05-31 2:08 Takao Fujiwara
0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31 2:08 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : f553865bc870a259f3b7b302120d7d5664924f44
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2024-07-18T18:34:08+09:00
Stats : +92/-29 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/f553865bc870a259f3b7b302120d7d5664924f44?branch=autotool
Log:
Fix memory leaks in error handlings
- Resolves #2297147 Add directory datadir/GConf/gsettings
- Resolves #2297735 Move ibus.conf to ibus-xinit sub package
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index e69de29..d2f5082 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -0,0 +1,68 @@
+From a1a2fe5d13ad76956a94c0695af15d76e3edfdca Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 18 Jul 2024 01:25:41 +0900
+Subject: [PATCH] Fix memory leaks in error handlings
+
+- bus/ibusimpl: Free keys not in case of TYPE_IME_SWITCHER
+- src/ibuscomposetable: Correct handling G_MAXSIZE * G_MAXSIZE
+- src/ibuscomposetable: Fee ibus_compose_seqs in error handlings
+---
+ bus/ibusimpl.c | 3 ++-
+ src/ibuscomposetable.c | 6 +++++-
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
+index 31a095f3..445c062b 100644
+--- a/bus/ibusimpl.c
++++ b/bus/ibusimpl.c
+@@ -1986,7 +1986,8 @@ _ibus_set_global_shortcut_keys (BusIBusImpl *ibus,
+ }
+ ibus->ime_switcher_keys = keys;
+ break;
+- default:;
++ default:
++ g_slice_free1 (sizeof (IBusProcessKeyEventData) * (size + 1), keys);
+ }
+ return TRUE;
+ }
+diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
+index 7531a4b2..a8e41a33 100644
+--- a/src/ibuscomposetable.c
++++ b/src/ibuscomposetable.c
+@@ -849,7 +849,7 @@ compose_data_to_variant (gconstpointer compose_data,
+ g_assert (compose_data);
+ if (error)
+ *error = NULL;
+- if ((index_stride * n_seqs) > G_MAXUINT64) {
++ if (n_seqs == 0 || index_stride > (G_MAXSIZE / n_seqs)) {
+ if (error) {
+ g_set_error (error, IBUS_ERROR, IBUS_ERROR_FAILED,
+ "Length %u x %lu is too long",
+@@ -1404,6 +1404,7 @@ ibus_compose_table_new_with_list (GList *compose_list,
+ (G_MAXSIZE / sizeof (guint16)))) {
+ g_warning ("Too long allocation %lu x %u",
+ s_size_total - s_size_16bit, n_index_stride);
++ g_free (ibus_compose_seqs);
+ return NULL;
+ }
+ rawdata = (gpointer)g_new (
+@@ -1416,6 +1417,8 @@ ibus_compose_table_new_with_list (GList *compose_list,
+ s_size_total - s_size_16bit,
+ n_index_stride,
+ v_size_32bit);
++ g_free (ibus_compose_seqs);
++ g_free (rawdata);
+ return NULL;
+ }
+ if (G_LIKELY (rawdata)) {
+@@ -1432,6 +1435,7 @@ ibus_compose_table_new_with_list (GList *compose_list,
+ }
+ if (!ibus_compose_seqs_32bit_first || !ibus_compose_seqs_32bit_second) {
+ g_warning ("Failed g_new");
++ g_free (ibus_compose_seqs);
+ g_free (rawdata);
+ return NULL;
+ }
+--
+2.45.0
+
diff --git a/ibus.spec b/ibus.spec
index 976b84f..b964e5c 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -30,6 +30,7 @@
%bcond_with gtk4
%endif
+%global ibus_xinit_condition %ibus_panel_condition
# FIXME: How to write a condition with multiple lines
%global ibus_panel_condition (%pcd1 or %pcd2 or %pcd3)
%global pcd1 budgie-desktop or cinnamon or deepin-desktop or i3
@@ -61,7 +62,7 @@
Name: ibus
Version: 1.5.31~beta1
# https://github.com/fedora-infra/rpmautospec/issues/101
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPL-2.1-or-later
URL: https://github.com/ibus/%name/wiki
@@ -72,7 +73,7 @@ Source3: %{name}.conf.5
# Patch0: %%{name}-HEAD.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252 #1601577
Patch1: %{name}-1385349-segv-bus-proxy.patch
-%if %{without xinit}
+%if 0%{?rhel} > 8
# Use mutter window manager in RHEL CI
Patch100: %{name}-xx-desktop-testing-mutter.patch
%endif
@@ -122,7 +123,8 @@ Requires: (%{name}-gtk2%{?_isa} = %{version}-%{release} if gtk2)
%endif
Requires: %{name}-gtk3%{?_isa} = %{version}-%{release}
Requires: %{name}-setup = %{version}-%{release}
-Requires: (%{name}-panel%{?_isa} = %{version}-%{release} if %ibus_panel_condition)
+Requires: (%{name}-panel%{?_isa} = %{version}-%{release} if %ibus_panel_condition)
+Requires: (%{name}-xinit = %{version}-%{release} if %ibus_xinit_condition)
Requires: iso-codes
Requires: dconf
@@ -132,15 +134,6 @@ Requires: dconf
Requires: python3-gobject
# https://bugzilla.redhat.com/show_bug.cgi?id=1161871
%{?__python3:Requires: %{__python3}}
-%if %{with xinit}
-# Owner of %%{_sysconfdir}/X11/xinit
-Requires: xorg-x11-xinit
-Requires: setxkbmap
-%endif
-%if (0%{?fedora} > 29 || 0%{?rhel} > 8)
-%else
-Requires: dbus-x11
-%endif
Requires: desktop-file-utils
Requires(post): desktop-file-utils
@@ -263,8 +256,9 @@ This package contains IBus IM module for Wayland
Summary: IBus Panel icon
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-%if %{without xinit}
-# ibus-xinit is not available in RHEL
+%if %{with xinit}
+# setxkbmap can change XKB options for Xorg desktop sessions
+Requires: setxkbmap
%endif
BuildRequires: libdbusmenu-gtk3-devel
@@ -274,16 +268,18 @@ in non-GNOME desktop sessions likes XFCE or Plasma because gnome-shell
shows the IBus Icon. This package depends on libdbusmenu-gtk3 for Wayland
desktop sessions.
-%if %{without xinit}
%package xinit
Summary: IBus Xinit
Requires: %{name} = %{version}-%{release}
+%if %{with xinit}
+# Owner of %%{_sysconfdir}/X11/xinit
+Requires: xorg-x11-xinit
+%endif
BuildArch: noarch
%description xinit
This package includes xinit scripts to set environment variables of IBus
for Xorg desktop sessions and this is not needed by Wayland desktop sessions.
-%endif
%package devel
Summary: Development tools for ibus
@@ -493,6 +489,8 @@ dconf update || :
%{_datadir}/applications/org.freedesktop.IBus.Panel.Extension.Gtk3.desktop
%{_datadir}/bash-completion/completions/ibus.bash
%{_datadir}/dbus-1/services/*.service
+%dir %{_datadir}/GConf
+%dir %{_datadir}/GConf/gsettings
%{_datadir}/GConf/gsettings/*
%{_datadir}/glib-2.0/schemas/*.xml
%{_datadir}/ibus/component
@@ -505,9 +503,6 @@ dconf update || :
%{_datadir}/man/man7/ibus-emoji.7.gz
%{_datadir}/man/man5/00-upstream-settings.5.gz
%{_datadir}/man/man5/ibus.5.gz
-%if %{with xinit}
-%{_datadir}/man/man5/ibus.conf.5.gz
-%endif
%{_libexecdir}/ibus-engine-simple
%{_libexecdir}/ibus-dconf
%{_libexecdir}/ibus-portal
@@ -523,13 +518,6 @@ dconf update || :
%{_prefix}/lib/systemd/user/org.freedesktop.IBus.session.*.service
%python3_sitearch/gi/overrides/__pycache__/*.py*
%python3_sitearch/gi/overrides/IBus.py
-%if %{with xinit}
-# ibus owns xinput.d because gnome does not like to depend on imsettings.
-%dir %{_sysconfdir}/X11/xinit/xinput.d
-# Do not use %%config(noreplace) to always get the new keywords in _xinputconf
-# For user customization, $HOME/.xinputrc can be used instead.
-%config %{_xinputconf}
-%endif
%verify(not mtime) %dir %pkgcache
%verify(not mtime) %dir %pkgcache/bus
# 'ibus write-cache --system' updates the system cache.
@@ -584,14 +572,16 @@ dconf update || :
%{_datadir}/applications/org.freedesktop.IBus.Panel.Wayland.Gtk3.desktop
%{_libexecdir}/ibus-ui-gtk3
-%if %{without xinit}
%files xinit
%{_datadir}/man/man5/ibus.conf.5.gz
+%if %{without xinit}
# ibus owns xinit directory without xorg-x11-xinit package
%dir %{_sysconfdir}/X11/xinit
%dir %{_sysconfdir}/X11/xinit/xinput.d
-%config %{_xinputconf}
%endif
+# Do not use %%config(noreplace) to always get the new keywords in _xinputconf
+# For user customization, $HOME/.xinputrc can be used instead.
+%config %{_xinputconf}
%files devel
%{_libdir}/ibus
@@ -624,7 +614,12 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
-* Fri Jul 12 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-1
+* Thu Jul 18 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-7
+- Resolves #2297147 Add directory datadir/GConf/gsettings
+- Resolves #2297735 Move ibus.conf to ibus-xinit sub package
+- Fix memory leaks in error handlings
+
+* Fri Jul 12 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-6
- Bump to 1.5.31-beta1
* Mon Jun 10 2024 Python Maint <python-maint@redhat.com> - 1.5.30-6
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-31 2:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31 2:08 [rpms/ibus] autotool: Fix memory leaks in error handlings Takao Fujiwara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox