diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2008-02-01 01:07:58 +0000 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2008-02-01 01:07:58 +0000 |
commit | 10a8f59e030c4b77535da29fcc02fdf4845bfa8c (patch) | |
tree | 8bc3214fd7240d0e5e52888279067e8a5faf47a3 /gtk | |
parent | ee8b8b0ad7d7cb60f7e4bff8b382df8a93a664ef (diff) | |
download | wireshark-10a8f59e030c4b77535da29fcc02fdf4845bfa8c.tar.gz wireshark-10a8f59e030c4b77535da29fcc02fdf4845bfa8c.tar.bz2 wireshark-10a8f59e030c4b77535da29fcc02fdf4845bfa8c.zip |
Rewrote some prohibited APIs in gtk/ (sprintf, strcpy, strcat).
If we get some truncated strings we probably overwrote some buffers...
svn path=/trunk/; revision=24239
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/airpcap_gui_utils.c | 4 | ||||
-rw-r--r-- | gtk/capture_if_details_dlg.c | 5 | ||||
-rw-r--r-- | gtk/capture_prefs.c | 8 | ||||
-rw-r--r-- | gtk/dfilter_expr_dlg.c | 4 | ||||
-rw-r--r-- | gtk/flow_graph.c | 4 | ||||
-rw-r--r-- | gtk/font_utils.c | 3 | ||||
-rw-r--r-- | gtk/io_stat.c | 4 | ||||
-rw-r--r-- | gtk/main.c | 2 | ||||
-rw-r--r-- | gtk/mcast_stream_dlg.c | 6 | ||||
-rw-r--r-- | gtk/menu.c | 6 | ||||
-rw-r--r-- | gtk/packet_win.c | 4 | ||||
-rw-r--r-- | gtk/prefs_dlg.c | 26 | ||||
-rw-r--r-- | gtk/progress_dlg.c | 2 | ||||
-rw-r--r-- | gtk/rtp_analysis.c | 24 | ||||
-rw-r--r-- | gtk/rtp_stream_dlg.c | 10 | ||||
-rw-r--r-- | gtk/sctp_assoc_analyse.c | 2 | ||||
-rw-r--r-- | gtk/sctp_byte_graph_dlg.c | 2 | ||||
-rw-r--r-- | gtk/sctp_graph_dlg.c | 2 | ||||
-rw-r--r-- | gtk/sctp_stat.c | 15 | ||||
-rw-r--r-- | gtk/summary_dlg.c | 36 |
20 files changed, 88 insertions, 81 deletions
diff --git a/gtk/airpcap_gui_utils.c b/gtk/airpcap_gui_utils.c index 07aaf409fb..881515ee05 100644 --- a/gtk/airpcap_gui_utils.c +++ b/gtk/airpcap_gui_utils.c @@ -739,9 +739,9 @@ airpcap_update_channel_offset_combo_entry(GtkWidget* w, gchar extChannel) gchar channel_offset_value[3]; if (extChannel > 0){ - sprintf(channel_offset_value, "+%d", extChannel); + g_snprintf(channel_offset_value, 3, "+%d", extChannel); }else{ - sprintf(channel_offset_value, "%d", extChannel); + g_snprintf(channel_offset_value, 3, "%d", extChannel); } gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(w)->entry), channel_offset_value); diff --git a/gtk/capture_if_details_dlg.c b/gtk/capture_if_details_dlg.c index 4984ce50b0..9b34374fac 100644 --- a/gtk/capture_if_details_dlg.c +++ b/gtk/capture_if_details_dlg.c @@ -1166,9 +1166,10 @@ capture_if_details_802_11_bssid_list(GtkWidget *main_vb, struct ndis_bssid_list /* Vendor */ manuf_name = get_manuf_name_if_known(mac); if(manuf_name != NULL) { - strcpy(vendor_buff, manuf_name); + strncpy(vendor_buff, manuf_name, DETAILS_STR_MAX); + vendor_buff[DETAILS_STR_MAX-1] = '\0'; } else { - strcpy(vendor_buff, ""); + vendor_buff[0] = '\0'; } /* Supported Rates */ diff --git a/gtk/capture_prefs.c b/gtk/capture_prefs.c index 6033891d42..7f511181b0 100644 --- a/gtk/capture_prefs.c +++ b/gtk/capture_prefs.c @@ -759,8 +759,8 @@ ifopts_write_new_descr(void) tmp_descr = g_strdup_printf("%s(%s)", ifnm, desc); else tmp_descr = g_strdup_printf(",%s(%s)", ifnm, desc); - strcat(new_descr, tmp_descr); - g_free(tmp_descr); + strncat(new_descr, tmp_descr, MAX_VAL_LEN - strlen(new_descr)); + g_free(tmp_descr); /* set first-in-list flag to false */ first_if = FALSE; } @@ -815,8 +815,8 @@ ifopts_write_new_hide(void) else tmp_hide = g_strdup_printf(",%s", ifnm); - strcat(new_hide, tmp_hide); - g_free(tmp_hide); + strncat(new_hide, tmp_hide, MAX_VAL_LEN - strlen(new_hide)); + g_free(tmp_hide); /* set first-in-list flag to false */ first_if = FALSE; } diff --git a/gtk/dfilter_expr_dlg.c b/gtk/dfilter_expr_dlg.c index 3cf4cc8dda..631565f1f5 100644 --- a/gtk/dfilter_expr_dlg.c +++ b/gtk/dfilter_expr_dlg.c @@ -680,9 +680,9 @@ value_list_sel_cb(GtkTreeSelection *sel, gpointer value_entry_arg) * testing for "false". */ if (value != NULL) - strcpy(value_string, "1"); + strncpy(value_string, "1", 2); else - strcpy(value_string, "0"); + strncpy(value_string, "0", 2); } else { /* * Numeric type; get the value corresponding to the diff --git a/gtk/flow_graph.c b/gtk/flow_graph.c index eb82e8660f..8728a77d36 100644 --- a/gtk/flow_graph.c +++ b/gtk/flow_graph.c @@ -348,10 +348,10 @@ static int flow_graph_tcp_add_to_graph(packet_info *pinfo, const struct tcpheade bpos = 1 << i; if (tcph->th_flags & bpos) { if (fpos) { - strcpy(&flags[fpos], ", "); + strncpy(&flags[fpos], ", ", 64 - fpos - 1); fpos += 2; } - strcpy(&flags[fpos], fstr[i]); + strncpy(&flags[fpos], fstr[i], 64 - fpos - 1); fpos += 3; } } diff --git a/gtk/font_utils.c b/gtk/font_utils.c index a905282581..637bf07591 100644 --- a/gtk/font_utils.c +++ b/gtk/font_utils.c @@ -650,7 +650,8 @@ set_app_font_gtk2(const char *fontname) pfont = pango_context_load_font(pc, pfd); if (pfont != NULL) { - strcpy(appfontname, fontname); + strncpy(appfontname, fontname, 128); + appfontname[127] = '\0'; g_object_set(G_OBJECT(settings), "gtk-font-name", appfontname, NULL); } diff --git a/gtk/io_stat.c b/gtk/io_stat.c index 239aff606d..d15ccea69a 100644 --- a/gtk/io_stat.c +++ b/gtk/io_stat.c @@ -1056,7 +1056,7 @@ enable_graph(io_stat_graph_t *gio, const char *filter, const char *field) } if(*field){ if(real_filter[0]!=0){ - strcat(real_filter, " && "); + strncat(real_filter, " && ", 261-strlen(real_filter)); } strncat(real_filter, field, 261-strlen(real_filter)); real_filter[261]=0; @@ -1424,7 +1424,7 @@ create_yscale_max_menu_items(io_stat_t *io, GtkWidget *menu) for(i=0;i<MAX_YSCALE;i++){ if(yscale_max[i]==AUTO_MAX_YSCALE){ - strcpy(str,"Auto"); + strncpy(str, "Auto", 15); } else { g_snprintf(str, 15, "%u", yscale_max[i]); } diff --git a/gtk/main.c b/gtk/main.c index 68ff4a8eaa..f524676478 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -859,7 +859,7 @@ tree_view_selection_changed_cb(GtkTreeSelection *sel, gpointer user_data _U_) if (finfo_length == 0) { len_str[0] = '\0'; } else if (finfo_length == 1) { - strcpy (len_str, ", 1 byte"); + strncpy (len_str, ", 1 byte", sizeof len_str); } else { g_snprintf (len_str, sizeof len_str, ", %d bytes", finfo_length); } diff --git a/gtk/mcast_stream_dlg.c b/gtk/mcast_stream_dlg.c index 85a99d03bb..035f4bc567 100644 --- a/gtk/mcast_stream_dlg.c +++ b/gtk/mcast_stream_dlg.c @@ -126,7 +126,7 @@ static void add_to_clist(mcast_stream_info_t* strinfo) gtk_clist_set_row_data(GTK_CLIST(clist), added_row, strinfo); /* Update the top label with the number of detected streams */ - sprintf(label_text, + g_snprintf(label_text, 256, "Detected %d Multicast streams, Average Bw: %.1f Mbps Max Bw: %.1f Mbps Max burst: %d / %dms Max buffer: %.1f KB", ++streams_nb, mcaststream_get_info()->allstreams->average_bw, mcaststream_get_info()->allstreams->element.maxbw, @@ -187,10 +187,10 @@ mcaststream_on_filter (GtkButton *button _U_, if (selected_stream_fwd) { if (selected_stream_fwd->src_addr.type==AT_IPv6){ - strcpy(ip_version,"v6"); + strncpy(ip_version,"v6",3); } else{ - strcpy(ip_version,""); + strncpy(ip_version,"",3); } filter_string_fwd = g_strdup_printf( "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u)", diff --git a/gtk/menu.c b/gtk/menu.c index 0962d6686e..7eab5dba1b 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -1323,7 +1323,7 @@ register_stat_menu_item( */ menupathlen = strlen(toolspath) + 1 + (p - name); menupath = g_malloc(menupathlen); - strcpy(menupath, toolspath); + strncpy(menupath, toolspath, strlen(toolspath) + 1); strncat(menupath, name, p - name); /* @@ -1362,8 +1362,8 @@ register_stat_menu_item( */ menupathlen = strlen(toolspath) + 1 + strlen(name); menupath = g_malloc(menupathlen); - strcpy(menupath, toolspath); - strcat(menupath, name); + strncpy(menupath, toolspath, strlen(toolspath) + 1); + strncat(menupath, name, strlen(name) + 1); /* * Construct an item factory entry for the item, and add it to diff --git a/gtk/packet_win.c b/gtk/packet_win.c index 6ffd70f8f8..f71c04dc9c 100644 --- a/gtk/packet_win.c +++ b/gtk/packet_win.c @@ -128,8 +128,8 @@ void new_window_cb(GtkWidget *w _U_) for (i = 0; i < cfile.cinfo.num_cols; ++i) { TextPtr = cfile.cinfo.col_data[i]; if ((strlen(Title) + strlen(TextPtr)) < NewWinTitleLen - 1) { - strcat(Title, TextPtr); - strcat(Title, " "); + strncat(Title, TextPtr, NewWinTitleLen - 1); + strncat(Title, " ", 2); } } diff --git a/gtk/prefs_dlg.c b/gtk/prefs_dlg.c index fbc615709b..0bb1c9a718 100644 --- a/gtk/prefs_dlg.c +++ b/gtk/prefs_dlg.c @@ -153,14 +153,14 @@ pref_show(pref_t *pref, gpointer user_data) and left-align it. */ title = pref->title; label_string = g_malloc(strlen(title) + 2); - strcpy(label_string, title); + strncpy(label_string, title, strlen(title) + 1); /* * Sometimes we don't want to append a ':' after a static text string... * If it is needed, we will specify it in the string itself. */ if(pref->type != PREF_STATIC_TEXT) - strcat(label_string, ":"); + strncat(label_string, ":", 2); /* Save the current value of the preference, so that we can revert it if the user does "Apply" and then "Cancel", and create the control for @@ -303,7 +303,7 @@ module_prefs_show(module_t *module, gpointer user_data) /* * Add this module to the tree. */ - strcpy(label_str, module->title); + strncpy(label_str, module->title, MAX_TREE_NODE_NAME_LEN); #if GTK_MAJOR_VERSION < 2 ct_node = gtk_ctree_insert_node(GTK_CTREE(cts->tree), cts->node, NULL, &label_ptr, 5, NULL, NULL, NULL, NULL, !prefs_module_has_submodules(module), @@ -571,30 +571,30 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_) cts.page = 0; /* Blank Page */ - strcpy(label_str, "(No Specific Preferences)"); + strncpy(label_str, "(No Specific Preferences)", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, NULL, NULL); blank_page = cts.page++; /* GUI prefs */ - strcpy(label_str, "User Interface"); + strncpy(label_str, "User Interface", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, gui_prefs_show(), E_GUI_PAGE_KEY); gui_iter = prefs_tree_page_add(label_str, cts.page, store, NULL, TRUE); cts.page++; /* GUI layout prefs */ - strcpy(label_str, "Layout"); + strncpy(label_str, "Layout", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, layout_prefs_show(), E_GUI_LAYOUT_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, &gui_iter, FALSE); cts.page++; /* GUI Column prefs */ - strcpy(label_str, "Columns"); + strncpy(label_str, "Columns", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, column_prefs_show(), E_GUI_COLUMN_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, &gui_iter, FALSE); cts.page++; /* GUI Font prefs */ - strcpy(label_str, "Font"); + strncpy(label_str, "Font", MAX_TREE_NODE_NAME_LEN); gui_font_pg = gui_font_prefs_show(); prefs_nb_page_add(prefs_nb, label_str, gui_font_pg, E_GUI_FONT_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, &gui_iter, FALSE); @@ -634,7 +634,7 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_) #endif /* GUI Colors prefs */ - strcpy(label_str, "Colors"); + strncpy(label_str, "Colors", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, stream_prefs_show(), E_GUI_COLORS_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, &gui_iter, FALSE); cts.page++; @@ -654,7 +654,7 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_) if (has_wpcap) { #endif /* _WIN32 */ /* capture prefs */ - strcpy(label_str, "Capture"); + strncpy(label_str, "Capture", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, capture_prefs_show(), E_CAPTURE_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, NULL, FALSE); cts.page++; @@ -664,13 +664,13 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_) #endif /* HAVE_LIBPCAP */ /* Printing prefs */ - strcpy(label_str, "Printing"); + strncpy(label_str, "Printing", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, printer_prefs_show(), E_PRINT_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, NULL, FALSE); cts.page++; /* Name resolution prefs */ - strcpy(label_str, "Name Resolution"); + strncpy(label_str, "Name Resolution", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, nameres_prefs_show(), E_NAMERES_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, NULL, FALSE); cts.page++; @@ -678,7 +678,7 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_) #ifdef HAVE_LIBPORTAUDIO #if GTK_MAJOR_VERSION >= 2 /* RTP player prefs */ - strcpy(label_str, "RTP Player"); + strncpy(label_str, "RTP Player", MAX_TREE_NODE_NAME_LEN); prefs_nb_page_add(prefs_nb, label_str, rtp_player_prefs_show(), E_RTP_PLAYER_PAGE_KEY); prefs_tree_page_add(label_str, cts.page, store, NULL, FALSE); cts.page++; diff --git a/gtk/progress_dlg.c b/gtk/progress_dlg.c index 464030a800..81942bb99b 100644 --- a/gtk/progress_dlg.c +++ b/gtk/progress_dlg.c @@ -96,7 +96,7 @@ create_progress_dlg(const gchar *task_title, const gchar *item_title, /* limit the item_title to some reasonable length */ item_title_dup = g_strdup(item_title); if (strlen(item_title_dup) > 110) { - strcpy(&item_title_dup[100], "..."); + strncpy(&item_title_dup[100], "...", 4); } dlg->title = g_strdup_printf("%s: %s", task_title, item_title_dup); diff --git a/gtk/rtp_analysis.c b/gtk/rtp_analysis.c index cfa2f02549..6339cd13e9 100644 --- a/gtk/rtp_analysis.c +++ b/gtk/rtp_analysis.c @@ -1549,7 +1549,7 @@ static void dialog_graph_draw(user_data_t* user_data) * Draw "x" for Sequence Errors and "m" for Marks */ /* Draw the labels Fwd and Rev */ - strcpy(label_string,"<-Fwd"); + strncpy(label_string,"<-Fwd",15); #if GTK_MAJOR_VERSION < 2 lwidth=gdk_string_width(font, label_string); gdk_draw_string(user_data->dlg.dialog_graph.pixmap, @@ -1567,7 +1567,7 @@ static void dialog_graph_draw(user_data_t* user_data) user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+3, layout); #endif - strcpy(label_string,"<-Rev"); + strncpy(label_string,"<-Rev",15); #if GTK_MAJOR_VERSION < 2 lwidth=gdk_string_width(font, label_string); gdk_draw_string(user_data->dlg.dialog_graph.pixmap, @@ -1604,9 +1604,9 @@ static void dialog_graph_draw(user_data_t* user_data) if(user_data->dlg.dialog_graph.graph[i].items[interval/user_data->dlg.dialog_graph.interval].flags & (STAT_FLAG_WRONG_SEQ|STAT_FLAG_MARKER)){ int lwidth; if (user_data->dlg.dialog_graph.graph[i].items[interval/user_data->dlg.dialog_graph.interval].flags & STAT_FLAG_WRONG_SEQ){ - strcpy(label_string,"x"); + strncpy(label_string,"x",15); } else { - strcpy(label_string,"m"); + strncpy(label_string,"m",15); } #if GTK_MAJOR_VERSION < 2 @@ -1991,7 +1991,7 @@ static void create_yscale_max_menu_items(user_data_t* user_data, GtkWidget *menu for(i=0;i<MAX_YSCALE;i++){ if(yscale_max[i]==AUTO_MAX_YSCALE){ - strcpy(str,"Auto"); + strncpy(str,"Auto",15); } else { g_snprintf(str, 15, "%u ms", yscale_max[i]/1000); } @@ -3418,16 +3418,20 @@ static void create_rtp_dialog(user_data_t* user_data) gtk_widget_show(main_vb); /* Notebooks... */ - strcpy(str_ip_src, get_addr_name(&(user_data->ip_src_fwd))); - strcpy(str_ip_dst, get_addr_name(&(user_data->ip_dst_fwd))); + strncpy(str_ip_src, get_addr_name(&(user_data->ip_src_fwd)), 16); + str_ip_src[15] = '\0'; + strncpy(str_ip_dst, get_addr_name(&(user_data->ip_dst_fwd)), 16); + str_ip_dst[15] = '\0'; g_snprintf(label_forward, 149, "Analysing stream from %s port %u to %s port %u SSRC = 0x%X", str_ip_src, user_data->port_src_fwd, str_ip_dst, user_data->port_dst_fwd, user_data->ssrc_fwd); - strcpy(str_ip_src, get_addr_name(&(user_data->ip_src_rev))); - strcpy(str_ip_dst, get_addr_name(&(user_data->ip_dst_rev))); + strncpy(str_ip_src, get_addr_name(&(user_data->ip_src_rev)), 16); + str_ip_src[15] = '\0'; + strncpy(str_ip_dst, get_addr_name(&(user_data->ip_dst_rev)), 16); + str_ip_dst[15] = '\0'; g_snprintf(label_reverse, 149, "Analysing stream from %s port %u to %s port %u SSRC = 0x%X", @@ -3768,7 +3772,7 @@ static void rtp_analysis_cb(GtkWidget *w _U_, gpointer data _U_) guint nfound; /* Try to compile the filter. */ - strcpy(filter_text,"rtp && rtp.version && rtp.ssrc && (ip || ipv6)"); + strncpy(filter_text,"rtp && rtp.version && rtp.ssrc && (ip || ipv6)",256); if (!dfilter_compile(filter_text, &sfcode)) { simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, dfilter_error_msg); return; diff --git a/gtk/rtp_stream_dlg.c b/gtk/rtp_stream_dlg.c index 911424feae..106eb49cc7 100644 --- a/gtk/rtp_stream_dlg.c +++ b/gtk/rtp_stream_dlg.c @@ -144,7 +144,7 @@ static void add_to_clist(rtp_stream_info_t* strinfo) gtk_clist_set_row_data(GTK_CLIST(clist), added_row, strinfo); /* Update the top label with the number of detected streams */ - sprintf(label_text, + g_snprintf(label_text, 256, "Detected %d RTP streams. Choose one for forward and reverse direction for analysis", ++streams_nb); gtk_label_set(GTK_LABEL(top_label), label_text); @@ -375,10 +375,10 @@ rtpstream_on_filter (GtkButton *button _U_, if (selected_stream_fwd) { if (selected_stream_fwd->src_addr.type==AT_IPv6){ - strcpy(ip_version,"v6"); + strncpy(ip_version,"v6",3); } else{ - strcpy(ip_version,""); + strncpy(ip_version,"",3); } filter_string_fwd = g_strdup_printf( "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u && rtp.ssrc==0x%X)", @@ -395,10 +395,10 @@ rtpstream_on_filter (GtkButton *button _U_, if (selected_stream_rev) { if (selected_stream_fwd->src_addr.type==AT_IPv6){ - strcpy(ip_version,"v6"); + strncpy(ip_version,"v6",3); } else{ - strcpy(ip_version,""); + strncpy(ip_version,"",3); } filter_string_rev = g_strdup_printf( "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u && rtp.ssrc==0x%X)", diff --git a/gtk/sctp_assoc_analyse.c b/gtk/sctp_assoc_analyse.c index fb151d2513..57b359a000 100644 --- a/gtk/sctp_assoc_analyse.c +++ b/gtk/sctp_assoc_analyse.c @@ -834,7 +834,7 @@ static void sctp_analyse_cb(struct sctp_analyse* u_data, gboolean ext) int i; guint32 *fn; - strcpy(filter_text,"sctp"); + strncpy(filter_text,"sctp",250); if (!dfilter_compile(filter_text, &sfcode)) { simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, dfilter_error_msg); return; diff --git a/gtk/sctp_byte_graph_dlg.c b/gtk/sctp_byte_graph_dlg.c index 8abdf91f6d..2f18fa4ab1 100644 --- a/gtk/sctp_byte_graph_dlg.c +++ b/gtk/sctp_byte_graph_dlg.c @@ -551,7 +551,7 @@ static void sctp_graph_draw(struct sctp_udata *u_data) } } - strcpy(label_string, "sec"); + strncpy(label_string, "sec", 15); #if GTK_MAJOR_VERSION < 2 lwidth = gdk_string_width(font, label_string); diff --git a/gtk/sctp_graph_dlg.c b/gtk/sctp_graph_dlg.c index 8c509b4cfa..9655e7ec17 100644 --- a/gtk/sctp_graph_dlg.c +++ b/gtk/sctp_graph_dlg.c @@ -610,7 +610,7 @@ static void sctp_graph_draw(struct sctp_udata *u_data) } - strcpy(label_string, "sec"); + strncpy(label_string, "sec", 15); #if GTK_MAJOR_VERSION < 2 lwidth=gdk_string_width(font, label_string); diff --git a/gtk/sctp_stat.c b/gtk/sctp_stat.c index fa66f65fff..f78f1a9ec6 100644 --- a/gtk/sctp_stat.c +++ b/gtk/sctp_stat.c @@ -264,7 +264,7 @@ static sctp_assoc_info_t *calc_checksum(struct _sctp_info *check_data, sctp_asso { if ((float)(data->n_adler32_correct*1.0/data->n_adler32_calculated) > 0.5) { - strcpy(data->checksum_type,"ADLER32"); + strncpy(data->checksum_type,"ADLER32",8); data->n_checksum_errors=(data->n_adler32_calculated-data->n_adler32_correct); ok = TRUE; } @@ -274,7 +274,7 @@ static sctp_assoc_info_t *calc_checksum(struct _sctp_info *check_data, sctp_asso { if ((float)(data->n_crc32c_correct*1.0/data->n_crc32c_calculated) > 0.5) { - strcpy(data->checksum_type,"CRC32C"); + strncpy(data->checksum_type,"CRC32C",8); data->n_checksum_errors=data->n_crc32c_calculated-data->n_crc32c_correct; ok = TRUE; } @@ -282,7 +282,7 @@ static sctp_assoc_info_t *calc_checksum(struct _sctp_info *check_data, sctp_asso if (!ok) { - strcpy(data->checksum_type,"UNKNOWN"); + strncpy(data->checksum_type,"UNKNOWN",8); data->n_checksum_errors=0; } @@ -883,13 +883,14 @@ packet(void *tapdata _U_, packet_info *pinfo , epan_dissect_t *edt _U_ , const v { error = g_malloc(sizeof(sctp_error_info_t)); error->frame_number = pinfo->fd->num; - strcpy(str,""); - strcpy(error->chunk_info,""); + str[0] = '\0'; + error->chunk_info[0] = '\0'; if ((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_INIT_CHUNK_ID) - strcpy(error->chunk_info, val_to_str(tvb_get_guint8(sctp_info->tvb[0],0),chunk_type_values,"Reserved")); + strncpy(error->chunk_info, val_to_str(tvb_get_guint8(sctp_info->tvb[0],0),chunk_type_values,"Reserved"), 200); else for (chunk_number = 0; chunk_number < sctp_info->number_of_tvbs; chunk_number++) - strcat(error->chunk_info, val_to_str(tvb_get_guint8(sctp_info->tvb[chunk_number],0),chunk_type_values,"Reserved")); + strncat(error->chunk_info, val_to_str(tvb_get_guint8(sctp_info->tvb[chunk_number],0),chunk_type_values,"Reserved"), 200 - strlen (error->chunk_info)); + error->chunk_info[199] = '\0'; error->info_text = "INFOS"; info->error_info_list = g_list_append(info->error_info_list, error); } diff --git a/gtk/summary_dlg.c b/gtk/summary_dlg.c index 6e871e06f5..3747a6ffc1 100644 --- a/gtk/summary_dlg.c +++ b/gtk/summary_dlg.c @@ -279,7 +279,7 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) if (summary.dfilter) { g_snprintf(string_buff2, SUM_STR_MAX, "%i", summary.filtered_count); } else { - strcpy(string_buff2, string_buff); + strncpy(string_buff2, string_buff, SUM_STR_MAX); } g_snprintf(string_buff3, SUM_STR_MAX, "%i", summary.marked_count); add_string_to_list(list, "Packets", string_buff, string_buff2, string_buff3); @@ -288,17 +288,17 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) if (seconds > 0) { g_snprintf(string_buff, SUM_STR_MAX, "%.3f sec", seconds); } else { - strcpy(string_buff, ""); + strncpy(string_buff, "", SUM_STR_MAX); } if (summary.dfilter && disp_seconds > 0) { g_snprintf(string_buff2, SUM_STR_MAX, "%.3f sec", disp_seconds); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if (summary.marked_count && marked_seconds > 0) { g_snprintf(string_buff3, SUM_STR_MAX, "%.3f sec", marked_seconds); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Between first and last packet", string_buff, string_buff2, string_buff3); @@ -306,17 +306,17 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) if (seconds > 0) { g_snprintf(string_buff, SUM_STR_MAX, "%.3f", summary.packet_count/seconds); } else { - strcpy(string_buff, ""); + strncpy(string_buff, "", SUM_STR_MAX); } if(summary.dfilter && disp_seconds > 0) { g_snprintf(string_buff2, SUM_STR_MAX, "%.3f", summary.filtered_count/disp_seconds); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if(summary.marked_count && marked_seconds > 0) { g_snprintf(string_buff3, SUM_STR_MAX, "%.3f", summary.marked_count/marked_seconds); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Avg. packets/sec", string_buff, string_buff2, string_buff3); @@ -326,21 +326,21 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ (float) ((gint64) summary.bytes)/summary.packet_count); } else { - strcpy(string_buff, ""); + strncpy(string_buff, "", SUM_STR_MAX); } if (summary.dfilter && summary.filtered_count > 1) { g_snprintf(string_buff2, SUM_STR_MAX, "%.3f bytes", /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ (float) ((gint64) summary.filtered_bytes)/summary.filtered_count); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if (summary.marked_count > 1) { g_snprintf(string_buff3, SUM_STR_MAX, "%.3f bytes", /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ (float) ((gint64) summary.marked_bytes)/summary.marked_count); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Avg. packet size", string_buff, string_buff2, string_buff3); @@ -349,12 +349,12 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) if (summary.dfilter && summary.filtered_count > 0) { g_snprintf(string_buff2, SUM_STR_MAX, "%" G_GINT64_MODIFIER "u", summary.filtered_bytes); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if (summary.marked_count) { g_snprintf(string_buff3, SUM_STR_MAX, "%" G_GINT64_MODIFIER "u", summary.marked_bytes); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Bytes", string_buff, string_buff2, string_buff3); @@ -363,19 +363,19 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ g_snprintf(string_buff, SUM_STR_MAX, "%.3f", ((gint64) summary.bytes)/seconds); } else { - strcpy(string_buff, ""); + strncpy(string_buff, "", SUM_STR_MAX); } if (summary.dfilter && disp_seconds > 0) { /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ g_snprintf(string_buff2, SUM_STR_MAX, "%.3f", ((gint64) summary.filtered_bytes)/disp_seconds); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if (summary.marked_count && marked_seconds > 0) { /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ g_snprintf(string_buff3, SUM_STR_MAX, "%.3f", ((gint64) summary.marked_bytes)/marked_seconds); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Avg. bytes/sec", string_buff, string_buff2, string_buff3); @@ -385,21 +385,21 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ ((gint64) summary.bytes) * 8.0 / (seconds * 1000.0 * 1000.0)); } else { - strcpy(string_buff, ""); + strncpy(string_buff, "", SUM_STR_MAX); } if (summary.dfilter && disp_seconds > 0) { g_snprintf(string_buff2, SUM_STR_MAX, "%.3f", /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ ((gint64) summary.filtered_bytes) * 8.0 / (disp_seconds * 1000.0 * 1000.0)); } else { - strcpy(string_buff2, ""); + strncpy(string_buff2, "", SUM_STR_MAX); } if (summary.marked_count && marked_seconds > 0) { g_snprintf(string_buff3, SUM_STR_MAX, "%.3f", /* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */ ((gint64) summary.marked_bytes) * 8.0 / (marked_seconds * 1000.0 * 1000.0)); } else { - strcpy(string_buff3, ""); + strncpy(string_buff3, "", SUM_STR_MAX); } add_string_to_list(list, "Avg. MBit/sec", string_buff, string_buff2, string_buff3); |