diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/dialogs/gtk_options.c | 13 | ||||
-rw-r--r-- | gtk/dialogs/gtk_source.c | 9 | ||||
-rw-r--r-- | gtk/gtk_scaffolding.c | 38 | ||||
-rw-r--r-- | gtk/gtk_tabs.c | 9 | ||||
-rw-r--r-- | gtk/gtk_theme.c | 11 | ||||
-rw-r--r-- | gtk/gtk_toolbar.c | 24 |
6 files changed, 69 insertions, 35 deletions
diff --git a/gtk/dialogs/gtk_options.c b/gtk/dialogs/gtk_options.c index 00f73e97e..14467aa1b 100644 --- a/gtk/dialogs/gtk_options.c +++ b/gtk/dialogs/gtk_options.c @@ -476,6 +476,7 @@ static void nsgtk_options_theme_combo(void) { gtk_combo_box_append_text(GTK_COMBO_BOX(combotheme), buf); } + fclose(fp); gtk_combo_box_set_active(GTK_COMBO_BOX(combotheme), option_current_theme); gtk_box_pack_start(box, combotheme, FALSE, TRUE, 0); @@ -855,14 +856,17 @@ BUTTON_CLICKED(buttonaddtheme) "gtkThemeFolderInstructions"), 0); gtk_widget_destroy(GTK_WIDGET(fc)); - free(filename); - free(themesfolder); + if (filename != NULL) + free(filename); + if (themesfolder != NULL) + free(themesfolder); return FALSE; } else { directory++; } } else { - free(filename); + if (filename != NULL) + free(filename); filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(fc)); if (strcmp(filename, themesfolder) == 0) { @@ -877,7 +881,8 @@ BUTTON_CLICKED(buttonaddtheme) } gtk_widget_destroy(GTK_WIDGET(fc)); nsgtk_theme_add(directory); - free(filename); + if (filename != NULL) + free(filename); } END_HANDLER diff --git a/gtk/dialogs/gtk_source.c b/gtk/dialogs/gtk_source.c index 361bcabd9..7ee3ef849 100644 --- a/gtk/dialogs/gtk_source.c +++ b/gtk/dialogs/gtk_source.c @@ -225,8 +225,17 @@ void nsgtk_source_tab_init(GtkWindow *parent, struct browser_window *bw) gchar *filename; char *fileurl; gint handle = g_file_open_tmp("nsgtksourceXXXXXX", &filename, NULL); + if ((handle == -1) || (filename == NULL)) { + warn_user(messages_get("gtkSourceTabError"), 0); + return; + } close (handle); /* in case it was binary mode */ FILE *f = fopen(filename, "w"); + if (f == NULL) { + warn_user(messages_get("gtkSourceTabError"), 0); + g_free(filename); + return; + } fprintf(f, "%s", ndata); fclose(f); free(ndata); diff --git a/gtk/gtk_scaffolding.c b/gtk/gtk_scaffolding.c index 01eb2d4e6..672a52f56 100644 --- a/gtk/gtk_scaffolding.c +++ b/gtk/gtk_scaffolding.c @@ -1205,31 +1205,32 @@ MULTIHANDLER(stop) MULTIHANDLER(reload) { - struct browser_window *bw = + struct browser_window *bw = gui_window_get_browser_window(g->top_level); + if (bw == NULL) + return TRUE; /* clear potential search effects */ - - if ((bw != NULL) && (bw->search_context != NULL)) + if (bw->search_context != NULL) search_destroy_context(bw->search_context); nsgtk_search_set_forward_state(true, bw); nsgtk_search_set_back_state(true, bw); - browser_window_reload(bw, true); + browser_window_reload(bw, true); - return TRUE; + return TRUE; } MULTIHANDLER(back) { - struct browser_window *bw = + struct browser_window *bw = gui_window_get_browser_window(g->top_level); - if (!history_back_available(bw->history)) + if ((bw == NULL) || (!history_back_available(bw->history))) return TRUE; /* clear potential search effects */ - if ((bw != NULL) && (bw->search_context != NULL)) + if (bw->search_context != NULL) search_destroy_context(bw->search_context); nsgtk_search_set_forward_state(true, bw); nsgtk_search_set_back_state(true, bw); @@ -1242,14 +1243,14 @@ MULTIHANDLER(back) MULTIHANDLER(forward) { - struct browser_window *bw = + struct browser_window *bw = gui_window_get_browser_window(g->top_level); - if (!history_forward_available(bw->history)) + if ((bw == NULL) || (!history_forward_available(bw->history))) return TRUE; /* clear potential search effects */ - if ((bw != NULL) && (bw->search_context != NULL)) + if (bw->search_context != NULL) search_destroy_context(bw->search_context); nsgtk_search_set_forward_state(true, bw); nsgtk_search_set_back_state(true, bw); @@ -1464,6 +1465,7 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) g->search = malloc(sizeof(struct gtk_search)); if (g->search == NULL) { warn_user("NoMemory", 0); + free(g); return NULL; } @@ -1837,13 +1839,17 @@ void gui_window_start_throbber(struct gui_window* _g) void gui_window_stop_throbber(struct gui_window* _g) { - struct gtk_scaffolding *g = nsgtk_get_scaffold(_g); - g->buttons[STOP_BUTTON]->sensitivity = false; - g->buttons[RELOAD_BUTTON]->sensitivity = true; + struct gtk_scaffolding *g = nsgtk_get_scaffold(_g); + if (g == NULL) + return; nsgtk_window_update_back_forward(g); schedule_remove(nsgtk_throb, g); + if (g->buttons[STOP_BUTTON] != NULL) + g->buttons[STOP_BUTTON]->sensitivity = false; + if (g->buttons[RELOAD_BUTTON] != NULL) + g->buttons[RELOAD_BUTTON]->sensitivity = true; - if ((g == NULL) || (g->throbber == NULL) || (nsgtk_throbber == NULL) || + if ((g->throbber == NULL) || (nsgtk_throbber == NULL) || (nsgtk_throbber->framedata == NULL) || (nsgtk_throbber->framedata[0] == NULL)) return; @@ -2221,6 +2227,8 @@ void nsgtk_scaffolding_toolbar_size_allocate(GtkWidget *widget, { struct gtk_scaffolding *g = (struct gtk_scaffolding *)data; int i = nsgtk_toolbar_get_id_from_widget(widget, g); + if (i == -1) + return; if ((g->toolbarmem == alloc->x) || (g->buttons[i]->location < g->buttons[HISTORY_BUTTON]->location)) diff --git a/gtk/gtk_tabs.c b/gtk/gtk_tabs.c index f0e87bb79..286c388d8 100644 --- a/gtk/gtk_tabs.c +++ b/gtk/gtk_tabs.c @@ -193,13 +193,16 @@ void nsgtk_tab_page_changed(GtkNotebook *notebook, GtkNotebookPage *page, GtkWidget *window = gtk_notebook_get_nth_page(notebook, page_num); struct gui_window *gw = g_object_get_data(G_OBJECT(window), "gui_window"); + if (gw == NULL) + return; struct browser_window *bw = gui_window_get_browser_window(gw); - if ((bw != NULL) && (bw->search_context != NULL)) + if (bw == NULL) + return; + if (bw->search_context != NULL) search_destroy_context(bw->search_context); nsgtk_search_set_forward_state(true, bw); nsgtk_search_set_back_state(true, bw); - if (gw) - nsgtk_scaffolding_set_top_level(gw); + nsgtk_scaffolding_set_top_level(gw); } void nsgtk_tab_close_current(GtkNotebook *notebook) diff --git a/gtk/gtk_theme.c b/gtk/gtk_theme.c index f215cbeea..f85ffa2e3 100644 --- a/gtk/gtk_theme.c +++ b/gtk/gtk_theme.c @@ -213,6 +213,7 @@ bool nsgtk_theme_verify(const char *themename) + 1); if (filecontent == NULL) { warn_user(messages_get("NoMemory"), 0); + fclose(fp); return true; } strcpy(filecontent, "gtk default theme\n"); @@ -226,6 +227,7 @@ bool nsgtk_theme_verify(const char *themename) if (testfile == NULL) { warn_user(messages_get("NoMemory"), 0); free(filecontent); + fclose(fp); return false; } sprintf(testfile, "%sthemes/%s", res_dir_location, @@ -381,8 +383,8 @@ struct nsgtk_theme *nsgtk_theme_load(GtkIconSize s) return nsgtk_theme_default(s); struct nsgtk_theme *theme = malloc(sizeof(struct nsgtk_theme)); - if (theme == NULL) - return theme; + if (theme == NULL) + return theme; if ((theme_cache_menu == NULL) || (theme_cache_toolbar == NULL)) nsgtk_theme_prepare(); @@ -390,8 +392,10 @@ struct nsgtk_theme *nsgtk_theme_load(GtkIconSize s) /* load theme from cache */ struct nsgtk_theme_cache *cachetheme = (s == GTK_ICON_SIZE_MENU) ? theme_cache_menu : theme_cache_toolbar; - if (cachetheme == NULL) + if (cachetheme == NULL) { + free(theme); return NULL; + } #define SET_BUTTON_IMAGE(p, q, r)\ if (p->image[q##_BUTTON] != NULL)\ @@ -731,6 +735,7 @@ bool theme_install_read(const char *data, unsigned long len) if (handle == -1) { warn_user(messages_get("gtkFileError"), "temporary theme file"); + return false; } ssize_t written = write(handle, data, len); close(handle); diff --git a/gtk/gtk_toolbar.c b/gtk/gtk_toolbar.c index 20cfbd812..bde285d34 100644 --- a/gtk/gtk_toolbar.c +++ b/gtk/gtk_toolbar.c @@ -201,16 +201,20 @@ void nsgtk_toolbar_window_open(nsgtk_scaffolding *g) } glade_xml_signal_autoconnect(window->glade); -#define GET_TOOLWIDGET(p, q, r, s) r->p = glade_xml_get_widget(r->s, #q);\ - if (r->p == NULL) {\ - warn_user(messages_get("NoMemory"), 0);\ - nsgtk_toolbar_cancel_clicked(NULL, g);\ - return;\ - } - - GET_TOOLWIDGET(window, toolbarwindow, window, glade) - GET_TOOLWIDGET(widgetvbox, widgetvbox, window, glade) -#undef GET_TOOLWIDGET + window->window = glade_xml_get_widget(window->glade, "toolbarwindow"); + if (window->window == NULL) { + warn_user(messages_get("NoMemory"), 0); + nsgtk_toolbar_cancel_clicked(NULL, g); + free(theme); + return; + } + window->widgetvbox = glade_xml_get_widget(window->glade, "widgetvbox"); + if (window->widgetvbox == NULL) { + warn_user(messages_get("NoMemory"), 0); + nsgtk_toolbar_cancel_clicked(NULL, g); + free(theme); + return; + } window->numberh = NSGTK_STORE_WIDTH; /* preset to width [in buttons] of */ /* store to cause creation of a new toolbar */ |