AUDIT: r15531 - gnucash/trunk/src/import-export/hbci - Add sanity checks when accessing GncPluginPage. Fixes #405851 and hopefully others.
Christian Stimming
cstim at cvs.gnucash.org
Fri Feb 9 05:23:02 EST 2007
Author: cstim
Date: 2007-02-09 05:23:00 -0500 (Fri, 09 Feb 2007)
New Revision: 15531
Trac: http://svn.gnucash.org/trac/changeset/15531
Modified:
gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c
Log:
Add sanity checks when accessing GncPluginPage. Fixes #405851 and hopefully others.
BP
Modified: gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c 2007-02-08 22:05:39 UTC (rev 15530)
+++ gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c 2007-02-09 10:23:00 UTC (rev 15531)
@@ -329,17 +329,19 @@
Account *account = NULL;
ENTER("main window %p", window);
- g_return_val_if_fail (GNC_IS_MAIN_WINDOW(window), NULL);
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
/* Ensure we are called from a register page. */
page = gnc_main_window_get_current_page(window);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
page_name = gnc_plugin_page_get_plugin_name(page);
+ g_return_val_if_fail (page_name, NULL);
- if (strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
+ if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
DEBUG("register page");
account =
gnc_plugin_page_register_get_account (GNC_PLUGIN_PAGE_REGISTER(page));
- } else if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+ } else if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
DEBUG("account tree page");
account =
gnc_plugin_page_account_tree_get_current_account (GNC_PLUGIN_PAGE_ACCOUNT_TREE(page));
@@ -364,8 +366,11 @@
GtkActionGroup *action_group;
GncMainWindow *window;
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
window = GNC_MAIN_WINDOW(plugin_page->window);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
action_group = gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
gnc_plugin_update_actions(action_group, need_account_actions,
"sensitive", account != NULL);
}
@@ -379,8 +384,10 @@
const gchar *page_name;
ENTER("main window %p, page %p", window, page);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
page_name = gnc_plugin_page_get_plugin_name(page);
- if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+ g_return_if_fail (page_name);
+ if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
DEBUG("account tree page, adding signal");
g_signal_connect (G_OBJECT(page),
"account_selected",
@@ -402,8 +409,9 @@
Account *account;
ENTER("main window %p, page %p", window, page);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
action_group = gnc_main_window_get_action_group(window,PLUGIN_ACTIONS_NAME);
- g_return_if_fail(action_group != NULL);
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
/* Reset everything to known state */
gnc_plugin_update_actions(action_group, need_account_actions,
@@ -421,11 +429,12 @@
/* Selectively make items visible */
page_name = gnc_plugin_page_get_plugin_name(page);
- if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+ g_return_if_fail (page_name);
+ if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
DEBUG("account tree page");
gnc_plugin_update_actions(action_group, account_tree_actions,
"visible", TRUE);
- } else if (strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
+ } else if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
DEBUG("register page");
gnc_plugin_update_actions(action_group, register_actions,
"visible", TRUE);
More information about the gnucash-changes
mailing list