Updated ibus-HEAD.patch to fix #1187956 IBusRegistry segv.

This commit is contained in:
Takao Fujiwara 2015-02-02 16:26:29 +09:00
parent 35f8a7ce22
commit 58634685bd
2 changed files with 62 additions and 1 deletions

View File

@ -1053,3 +1053,61 @@ index 0a54058..8385aba 100644
--
2.1.0
From bfa4d75bac29f77828e4ed38ebec6af2e6d96144 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 2 Feb 2015 16:15:37 +0900
Subject: [PATCH] Release registry observed_paths and components if they are
broken
Registry caches might be broken in a disk.
---
src/ibusregistry.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/ibusregistry.c b/src/ibusregistry.c
index 2830a08..8e9ada9 100644
--- a/src/ibusregistry.c
+++ b/src/ibusregistry.c
@@ -1,9 +1,9 @@
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/* vim:set et sts=4: */
/* bus - The Input Bus
- * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com>
- * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com>
- * Copyright (C) 2013 Red Hat, Inc.
+ * Copyright (C) 2015 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2015 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ * Copyright (C) 2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -374,12 +374,26 @@ ibus_registry_check_modification (IBusRegistry *registry)
g_assert (IBUS_IS_REGISTRY (registry));
for (p = registry->priv->observed_paths; p != NULL; p = p->next) {
+ if (!IBUS_IS_OBSERVED_PATH (p->data)) {
+ g_warning ("The registry cache of observed_paths might be " \
+ "broken and have to generate the cache again.");
+ g_list_free_full (registry->priv->observed_paths, g_object_unref);
+ registry->priv->observed_paths = NULL;
+ return TRUE;
+ }
if (ibus_observed_path_check_modification (
(IBusObservedPath *) p->data))
return TRUE;
}
for (p = registry->priv->components; p != NULL; p = p->next) {
+ if (!IBUS_IS_COMPONENT (p->data)) {
+ g_warning ("The registry cache of components might be " \
+ "broken and have to generate the cache again.");
+ g_list_free_full (registry->priv->components, g_object_unref);
+ registry->priv->components = NULL;
+ return TRUE;
+ }
if (ibus_component_check_modification ((IBusComponent *) p->data))
return TRUE;
}
--
2.1.0

View File

@ -28,7 +28,7 @@
Name: ibus
Version: 1.5.9
Release: 8%{?dist}
Release: 9%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@ -415,6 +415,9 @@ fi
%{_datadir}/gtk-doc/html/*
%changelog
* Mon Feb 02 2015 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.9-9
- Updated ibus-HEAD.patch to fix #1187956 IBusRegistry segv.
* Thu Dec 18 2014 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.9-8
- Updated ibus-HEAD.patch to fix #1175595 ibus-x11 freeze