[evolution] Bug 738283 - Use-after-free with categories filter



commit 4f02ea569ba8328a83c1108ba6b1c67aaaf66337
Author: Milan Crha <mcrha redhat com>
Date:   Mon Oct 13 15:15:40 2014 +0200

    Bug 738283 - Use-after-free with categories filter

 modules/addressbook/e-book-shell-view.c |    4 +++-
 modules/calendar/e-cal-shell-view.c     |    3 ++-
 modules/calendar/e-memo-shell-view.c    |    4 +++-
 modules/calendar/e-task-shell-view.c    |    3 ++-
 4 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/modules/addressbook/e-book-shell-view.c b/modules/addressbook/e-book-shell-view.c
index 85c87bd..3b4e563 100644
--- a/modules/addressbook/e-book-shell-view.c
+++ b/modules/addressbook/e-book-shell-view.c
@@ -169,13 +169,15 @@ book_shell_view_execute_search (EShellView *shell_view)
 
                        categories = e_util_dup_searchable_categories ();
                        category_name = g_list_nth_data (categories, filter_id);
-                       g_list_free_full (categories, g_free);
 
                        temp = g_strdup_printf (
                                "(and (is \"category_list\" \"%s\") %s)",
                                category_name, query);
                        g_free (query);
                        query = temp;
+
+                       g_list_free_full (categories, g_free);
+                       break;
                }
        }
 
diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c
index 6f3a94e..b33d2e8 100644
--- a/modules/calendar/e-cal-shell-view.c
+++ b/modules/calendar/e-cal-shell-view.c
@@ -212,13 +212,14 @@ cal_shell_view_execute_search (EShellView *shell_view)
 
                        categories = e_util_dup_searchable_categories ();
                        category_name = g_list_nth_data (categories, value);
-                       g_list_free_full (categories, g_free);
 
                        temp = g_strdup_printf (
                                "(and (has-categories? \"%s\") %s)",
                                category_name, query);
                        g_free (query);
                        query = temp;
+
+                       g_list_free_full (categories, g_free);
                        break;
                }
        }
diff --git a/modules/calendar/e-memo-shell-view.c b/modules/calendar/e-memo-shell-view.c
index 8fc6a2f..479d20d 100644
--- a/modules/calendar/e-memo-shell-view.c
+++ b/modules/calendar/e-memo-shell-view.c
@@ -118,13 +118,15 @@ memo_shell_view_execute_search (EShellView *shell_view)
 
                        categories = e_util_dup_searchable_categories ();
                        category_name = g_list_nth_data (categories, value);
-                       g_list_free_full (categories, g_free);
 
                        temp = g_strdup_printf (
                                "(and (has-categories? \"%s\") %s)",
                                category_name, query);
                        g_free (query);
                        query = temp;
+
+                       g_list_free_full (categories, g_free);
+                       break;
                }
        }
 
diff --git a/modules/calendar/e-task-shell-view.c b/modules/calendar/e-task-shell-view.c
index 59cbe9b..e267b5c 100644
--- a/modules/calendar/e-task-shell-view.c
+++ b/modules/calendar/e-task-shell-view.c
@@ -201,13 +201,14 @@ task_shell_view_execute_search (EShellView *shell_view)
 
                        categories = e_util_dup_searchable_categories ();
                        category_name = g_list_nth_data (categories, value);
-                       g_list_free_full (categories, g_free);
 
                        temp = g_strdup_printf (
                                "(and (has-categories? \"%s\") %s)",
                                category_name, query);
                        g_free (query);
                        query = temp;
+
+                       g_list_free_full (categories, g_free);
                        break;
                }
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]