summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/dialogs/gtk_options.c13
-rw-r--r--gtk/dialogs/gtk_source.c9
-rw-r--r--gtk/gtk_scaffolding.c38
-rw-r--r--gtk/gtk_tabs.c9
-rw-r--r--gtk/gtk_theme.c11
-rw-r--r--gtk/gtk_toolbar.c24
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 */