diff --git a/ChangeLog b/ChangeLog index c6557d75f9..da53acd405 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2001-01-14 Sven Neumann + + Merged fixes from gimp-1-2: + + * app/menus.c + * app/plug-in.c: added some sanity checks for passed string pointers + to various public functions in an attempt to fix bug #37622. + + * plug-ins/common/sharpen.c: applied a patch from Jerome Zago + that fixes a longstanding bug in the + sharpen filter which sometimes got the last line wrong. + Fixes bug #34155. + 2001-01-14 Michael Natterer * app/apptypes.h diff --git a/app/actions/plug-in-commands.c b/app/actions/plug-in-commands.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/actions/plug-in-commands.c +++ b/app/actions/plug-in-commands.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/gui/menus.c b/app/gui/menus.c index 0732fb7c6d..e9cf7ce61d 100644 --- a/app/gui/menus.c +++ b/app/gui/menus.c @@ -855,12 +855,18 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry, gpointer callback_data) { GtkItemFactory *item_factory; - gchar *path; + gchar *path; + + g_return_if_fail (entry != NULL); if (!menus_initialized) menus_init (); path = entry->entry.path; + + if (!path) + return; + item_factory = gtk_item_factory_from_path (path); if (!item_factory) @@ -889,6 +895,9 @@ menus_create_branches (GtkItemFactory *item_factory, gchar *p; gchar *path; + if (! entry->entry.path) + return; + tearoff_path = g_string_new (""); path = entry->entry.path; @@ -1205,6 +1214,9 @@ menus_set_sensitive (gchar *path, GtkItemFactory *ifactory; GtkWidget *widget = NULL; + if (! path) + return; + if (!menus_initialized) menus_init (); @@ -1354,6 +1366,8 @@ menus_last_opened_add (gchar *filename) GtkWidget *menu_item; guint num_entries; + g_return_if_fail (filename != NULL); + /* do nothing if we've already got the filename on the list */ for (list = last_opened_raw_filenames; list; list = g_slist_next (list)) { @@ -1816,7 +1830,9 @@ menu_translate (const gchar *path, complete = g_strconcat (factory, complete, NULL); translation = g_strdup (dgettext (domain, complete)); - while (*complete && *translation && strcmp (complete, menupath)) + while (complete && *complete && + translation && *translation && + strcmp (complete, menupath)) { p = strrchr (complete, '/'); t = strrchr (translation, '/'); diff --git a/app/gui/plug-in-commands.c b/app/gui/plug-in-commands.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/gui/plug-in-commands.c +++ b/app/gui/plug-in-commands.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/gui/plug-in-menus.c b/app/gui/plug-in-menus.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/gui/plug-in-menus.c +++ b/app/gui/plug-in-menus.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/menus.c b/app/menus.c index 0732fb7c6d..e9cf7ce61d 100644 --- a/app/menus.c +++ b/app/menus.c @@ -855,12 +855,18 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry, gpointer callback_data) { GtkItemFactory *item_factory; - gchar *path; + gchar *path; + + g_return_if_fail (entry != NULL); if (!menus_initialized) menus_init (); path = entry->entry.path; + + if (!path) + return; + item_factory = gtk_item_factory_from_path (path); if (!item_factory) @@ -889,6 +895,9 @@ menus_create_branches (GtkItemFactory *item_factory, gchar *p; gchar *path; + if (! entry->entry.path) + return; + tearoff_path = g_string_new (""); path = entry->entry.path; @@ -1205,6 +1214,9 @@ menus_set_sensitive (gchar *path, GtkItemFactory *ifactory; GtkWidget *widget = NULL; + if (! path) + return; + if (!menus_initialized) menus_init (); @@ -1354,6 +1366,8 @@ menus_last_opened_add (gchar *filename) GtkWidget *menu_item; guint num_entries; + g_return_if_fail (filename != NULL); + /* do nothing if we've already got the filename on the list */ for (list = last_opened_raw_filenames; list; list = g_slist_next (list)) { @@ -1816,7 +1830,9 @@ menu_translate (const gchar *path, complete = g_strconcat (factory, complete, NULL); translation = g_strdup (dgettext (domain, complete)); - while (*complete && *translation && strcmp (complete, menupath)) + while (complete && *complete && + translation && *translation && + strcmp (complete, menupath)) { p = strrchr (complete, '/'); t = strrchr (translation, '/'); diff --git a/app/menus/menus.c b/app/menus/menus.c index 0732fb7c6d..e9cf7ce61d 100644 --- a/app/menus/menus.c +++ b/app/menus/menus.c @@ -855,12 +855,18 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry, gpointer callback_data) { GtkItemFactory *item_factory; - gchar *path; + gchar *path; + + g_return_if_fail (entry != NULL); if (!menus_initialized) menus_init (); path = entry->entry.path; + + if (!path) + return; + item_factory = gtk_item_factory_from_path (path); if (!item_factory) @@ -889,6 +895,9 @@ menus_create_branches (GtkItemFactory *item_factory, gchar *p; gchar *path; + if (! entry->entry.path) + return; + tearoff_path = g_string_new (""); path = entry->entry.path; @@ -1205,6 +1214,9 @@ menus_set_sensitive (gchar *path, GtkItemFactory *ifactory; GtkWidget *widget = NULL; + if (! path) + return; + if (!menus_initialized) menus_init (); @@ -1354,6 +1366,8 @@ menus_last_opened_add (gchar *filename) GtkWidget *menu_item; guint num_entries; + g_return_if_fail (filename != NULL); + /* do nothing if we've already got the filename on the list */ for (list = last_opened_raw_filenames; list; list = g_slist_next (list)) { @@ -1816,7 +1830,9 @@ menu_translate (const gchar *path, complete = g_strconcat (factory, complete, NULL); translation = g_strdup (dgettext (domain, complete)); - while (*complete && *translation && strcmp (complete, menupath)) + while (complete && *complete && + translation && *translation && + strcmp (complete, menupath)) { p = strrchr (complete, '/'); t = strrchr (translation, '/'); diff --git a/app/menus/plug-in-menus.c b/app/menus/plug-in-menus.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/menus/plug-in-menus.c +++ b/app/menus/plug-in-menus.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimpplugin-message.c b/app/plug-in/gimpplugin-message.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimpplugin-message.c +++ b/app/plug-in/gimpplugin-message.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimpplugin-progress.c b/app/plug-in/gimpplugin-progress.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimpplugin-progress.c +++ b/app/plug-in/gimpplugin-progress.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimpplugin.c b/app/plug-in/gimpplugin.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimpplugin.c +++ b/app/plug-in/gimpplugin.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimppluginmanager-call.c b/app/plug-in/gimppluginmanager-call.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimppluginmanager-call.c +++ b/app/plug-in/gimppluginmanager-call.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimppluginmanager-run.c b/app/plug-in/gimppluginmanager-run.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimppluginmanager-run.c +++ b/app/plug-in/gimppluginmanager-run.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimppluginmanager.c b/app/plug-in/gimppluginmanager.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimppluginmanager.c +++ b/app/plug-in/gimppluginmanager.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/gimppluginshm.c b/app/plug-in/gimppluginshm.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/gimppluginshm.c +++ b/app/plug-in/gimppluginshm.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-def.c b/app/plug-in/plug-in-def.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-def.c +++ b/app/plug-in/plug-in-def.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-message.c b/app/plug-in/plug-in-message.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-message.c +++ b/app/plug-in/plug-in-message.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-params.c b/app/plug-in/plug-in-params.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-params.c +++ b/app/plug-in/plug-in-params.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-progress.c b/app/plug-in/plug-in-progress.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-progress.c +++ b/app/plug-in/plug-in-progress.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-run.c b/app/plug-in/plug-in-run.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-run.c +++ b/app/plug-in/plug-in-run.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in-shm.c b/app/plug-in/plug-in-shm.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in-shm.c +++ b/app/plug-in/plug-in-shm.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-in.c b/app/plug-in/plug-in.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-in.c +++ b/app/plug-in/plug-in.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug-in/plug-ins.c b/app/plug-in/plug-ins.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug-in/plug-ins.c +++ b/app/plug-in/plug-ins.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/plug_in.c b/app/plug_in.c index 1981ec16ad..bcf1e1813b 100644 --- a/app/plug_in.c +++ b/app/plug_in.c @@ -498,6 +498,8 @@ plug_in_add (gchar *prog, PlugInProcDef *proc_def; GSList *tmp; + g_return_if_fail (prog != NULL); + if (strncmp ("plug_in_", prog, 8) != 0) { gchar *t = g_strdup_printf ("plug_in_%s", prog); @@ -554,6 +556,8 @@ plug_in_image_types (gchar *name) PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -618,6 +622,8 @@ plug_in_file_handler (gchar *name, PlugInProcDef *proc_def; GSList *tmp; + g_return_val_if_fail (name != NULL, NULL); + if (current_plug_in) { plug_in_def = current_plug_in->user_data; @@ -783,6 +789,8 @@ plug_in_menu_path (gchar *name) PlugInProcDef *proc_def; GSList *tmp, *tmp2; + g_return_val_if_fail (name != NULL, NULL); + for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp)) { plug_in_def = tmp->data; @@ -1764,7 +1772,8 @@ plug_in_handle_proc_return (GPProcReturn *proc_return) blocked = tmp->data; tmp = tmp->next; - if (strcmp (blocked->proc_name, proc_return->name) == 0) + if (blocked->proc_name && proc_return->name && + strcmp (blocked->proc_name, proc_return->name) == 0) { plug_in_push (blocked->plug_in); if (!gp_proc_return_write (current_writechannel, proc_return)) diff --git a/app/widgets/gimpitemfactory.c b/app/widgets/gimpitemfactory.c index 0732fb7c6d..e9cf7ce61d 100644 --- a/app/widgets/gimpitemfactory.c +++ b/app/widgets/gimpitemfactory.c @@ -855,12 +855,18 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry, gpointer callback_data) { GtkItemFactory *item_factory; - gchar *path; + gchar *path; + + g_return_if_fail (entry != NULL); if (!menus_initialized) menus_init (); path = entry->entry.path; + + if (!path) + return; + item_factory = gtk_item_factory_from_path (path); if (!item_factory) @@ -889,6 +895,9 @@ menus_create_branches (GtkItemFactory *item_factory, gchar *p; gchar *path; + if (! entry->entry.path) + return; + tearoff_path = g_string_new (""); path = entry->entry.path; @@ -1205,6 +1214,9 @@ menus_set_sensitive (gchar *path, GtkItemFactory *ifactory; GtkWidget *widget = NULL; + if (! path) + return; + if (!menus_initialized) menus_init (); @@ -1354,6 +1366,8 @@ menus_last_opened_add (gchar *filename) GtkWidget *menu_item; guint num_entries; + g_return_if_fail (filename != NULL); + /* do nothing if we've already got the filename on the list */ for (list = last_opened_raw_filenames; list; list = g_slist_next (list)) { @@ -1816,7 +1830,9 @@ menu_translate (const gchar *path, complete = g_strconcat (factory, complete, NULL); translation = g_strdup (dgettext (domain, complete)); - while (*complete && *translation && strcmp (complete, menupath)) + while (complete && *complete && + translation && *translation && + strcmp (complete, menupath)) { p = strrchr (complete, '/'); t = strrchr (translation, '/'); diff --git a/plug-ins/common/sharpen.c b/plug-ins/common/sharpen.c index 381aa3fc17..f8541c0c07 100644 --- a/plug-ins/common/sharpen.c +++ b/plug-ins/common/sharpen.c @@ -462,10 +462,12 @@ sharpen (void) } else if (count == 2) { - if (y == sel_y1) - gimp_pixel_rgn_set_row (&dst_rgn, src_rows[0], sel_x1, y, sel_width); - else - gimp_pixel_rgn_set_row (&dst_rgn, src_rows[2], sel_x1, y, sel_width); + if (y == sel_y1) /* first row */ + gimp_pixel_rgn_set_row (&dst_rgn, src_rows[0], + sel_x1, y, sel_width); + else /* last row */ + gimp_pixel_rgn_set_row (&dst_rgn, src_rows[(sel_height - 1) & 3], + sel_x1, y, sel_width); }; if ((y & 15) == 0)