From 09487194e4b44b2a1948e41f0fc5adffee4bcbc0 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Wed, 16 May 2012 00:27:26 +0000 Subject: Check the return value of create_tempfile. Fixes CIDs 280527 and 280528. svn path=/trunk/; revision=42645 --- ui/gtk/iax2_analysis.c | 55 ++++++++++++++++++++++++++++++-------------------- ui/gtk/rtp_analysis.c | 18 +++++++++++++---- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/ui/gtk/iax2_analysis.c b/ui/gtk/iax2_analysis.c index 2dc6a1d9ef..2a30b60ec4 100644 --- a/ui/gtk/iax2_analysis.c +++ b/ui/gtk/iax2_analysis.c @@ -1067,11 +1067,11 @@ static void dialog_graph_draw(user_data_t* user_data) cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif cairo_set_line_width (cr, 1.0); - cairo_move_to(cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, + cairo_move_to(cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); - - cairo_line_to(cr, + + cairo_line_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5+xwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); cairo_stroke(cr); @@ -1086,8 +1086,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + cairo_move_to (cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1102,8 +1102,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + cairo_move_to (cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1118,8 +1118,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + cairo_move_to (cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1220,8 +1220,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - x-1-user_data->dlg.dialog_graph.pixels_per_tick/2-lwidth/2, + cairo_move_to (cr, + x-1-user_data->dlg.dialog_graph.pixels_per_tick/2-lwidth/2, user_data->dlg.dialog_graph.surface_height-bottom_y_border+20); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1247,8 +1247,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, + cairo_move_to (cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border+3); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1262,8 +1262,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, + cairo_move_to (cr, + user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border+3+9); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1298,8 +1298,8 @@ static void dialog_graph_draw(user_data_t* user_data) #else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); #endif - cairo_move_to (cr, - x_pos-1-lwidth/2, + cairo_move_to (cr, + x_pos-1-lwidth/2, user_data->dlg.dialog_graph.surface_height-bottom_y_border+3+7*(i/2)); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); @@ -1367,7 +1367,7 @@ static void dialog_graph_draw(user_data_t* user_data) cr = gdk_cairo_create (gtk_widget_get_window(user_data->dlg.dialog_graph.draw_area)); #if GTK_CHECK_VERSION(2,22,0) - cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); #else gdk_cairo_set_source_pixmap (cr, user_data->dlg.dialog_graph.pixmap, 0, 0); #endif @@ -1417,7 +1417,7 @@ static gboolean draw_area_draw(GtkWidget *widget, cairo_t *cr, gpointer data) gtk_widget_get_allocation (widget, &allocation); - cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); cairo_rectangle (cr, 0, 0, allocation.width, allocation.height); cairo_fill (cr); @@ -1430,7 +1430,7 @@ static gboolean draw_area_expose_event(GtkWidget *widget, GdkEventExpose *event, cairo_t *cr = gdk_cairo_create (gtk_widget_get_window(widget)); #if GTK_CHECK_VERSION(2,22,0) - cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); #else gdk_cairo_set_source_pixmap (cr, user_data->dlg.dialog_graph.pixmap, 0, 0); #endif @@ -3533,11 +3533,22 @@ void iax2_analysis( /* file names for storing sound data */ - /*XXX: check for errors*/ fd = create_tempfile(&tempname, "wireshark_iax2_f"); + if (fd < 0) { + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, + "Can't create temporary file for IAX2 analysis:\n%s.", + g_strerror(errno)); + return; + } user_data->f_tempname = g_strdup(tempname); ws_close(fd); fd = create_tempfile(&tempname, "wireshark_iax2_r"); + if (fd < 0) { + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, + "Can't create temporary file for IAX2 analysis:\n%s.", + g_strerror(errno)); + return; + } user_data->r_tempname = g_strdup(tempname); ws_close(fd); user_data->forward.saveinfo.fp = NULL; diff --git a/ui/gtk/rtp_analysis.c b/ui/gtk/rtp_analysis.c index f1aac702ef..7e867462f4 100644 --- a/ui/gtk/rtp_analysis.c +++ b/ui/gtk/rtp_analysis.c @@ -1092,7 +1092,7 @@ static void dialog_graph_draw(user_data_t* user_data) cairo_move_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); - + cairo_line_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5+xwidth, user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); @@ -1630,7 +1630,7 @@ static void create_filter_box(dialog_graph_graph_t *dgg, GtkWidget *box, int num gtk_widget_override_color(label, GTK_STATE_PRELIGHT, &dgg->rgba_color); gtk_widget_override_color(label, GTK_STATE_SELECTED, &dgg->rgba_color); gtk_widget_override_color(label, GTK_STATE_INSENSITIVE, &dgg->rgba_color); -#else +#else gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &dgg->color); gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, &dgg->color); gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &dgg->color); @@ -3704,11 +3704,22 @@ void rtp_analysis( /* file names for storing sound data */ - /*XXX: check for errors*/ fd = create_tempfile(&tempname, "wireshark_rtp_f"); + if (fd < 0) { + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, + "Can't create temporary file for RTP analysis:\n%s.", + g_strerror(errno)); + return; + } user_data->f_tempname = g_strdup(tempname); ws_close(fd); fd = create_tempfile(&tempname, "wireshark_rtp_r"); + if (fd < 0) { + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, + "Can't create temporary file for RTP analysis:\n%s.", + g_strerror(errno)); + return; + } user_data->r_tempname = g_strdup(tempname); ws_close(fd); user_data->forward.saveinfo.fp = NULL; @@ -3910,4 +3921,3 @@ register_tap_listener_rtp_analysis(void) { register_stat_cmd_arg("rtp", rtp_analysis_init, NULL); } - -- cgit v1.2.3