aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2006-04-27 18:46:05 +0000
committerGerald Combs <gerald@wireshark.org>2006-04-27 18:46:05 +0000
commit784334b322b744370781af08de64ffa1fdd24318 (patch)
tree83679445143b4755daa99f2db70436b8e6c254c4 /file.c
parent36b80f104377113ec196d9c6580d87c8059c53d6 (diff)
Add an extra null pointer check. Fixes Coverity CID 154.
svn path=/trunk/; revision=18018
Diffstat (limited to 'file.c')
-rw-r--r--file.c45
1 files changed, 25 insertions, 20 deletions
diff --git a/file.c b/file.c
index 2f6d741bba..f52135309b 100644
--- a/file.c
+++ b/file.c
@@ -340,7 +340,7 @@ cf_reset_state(capture_file *cf)
void
cf_close(capture_file *cf)
{
- /* do GUI things even if file is already closed,
+ /* do GUI things even if file is already closed,
* e.g. to cleanup things if a capture couldn't be started */
cf_callback_invoke(cf_cb_file_closing, cf);
@@ -390,7 +390,7 @@ cf_read(capture_file *cf)
progbar_nextstep = 0;
/* When we reach the value that triggers a progress bar update,
bump that value by this amount. */
- if (size >= 0)
+ if (size >= 0)
progbar_quantum = size/N_PROGBAR_UPDATES;
else
progbar_quantum = 0;
@@ -446,11 +446,11 @@ cf_read(capture_file *cf)
}
if (stop_flag) {
- /* Well, the user decided to abort the read. He/She will be warned and
+ /* Well, the user decided to abort the read. He/She will be warned and
it might be enough for him/her to work with the already loaded
packets.
- This is especially true for very large capture files, where you don't
- want to wait loading the whole file (which may last minutes or even
+ This is especially true for very large capture files, where you don't
+ want to wait loading the whole file (which may last minutes or even
hours even on fast machines) just to see that it was the wrong file. */
break;
}
@@ -488,7 +488,7 @@ cf_read(capture_file *cf)
packet_list_select_row(0);
if(stop_flag) {
- simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+ simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
"%sFile loading was cancelled!%s\n"
"\n"
"The remaining packets in the file were discarded.\n"
@@ -578,7 +578,7 @@ cf_continue_tail(capture_file *cf, int to_read, int *err)
to_read--;
}
- /*g_log(NULL, G_LOG_LEVEL_MESSAGE, "cf_continue_tail: count %u state: %u err: %u",
+ /*g_log(NULL, G_LOG_LEVEL_MESSAGE, "cf_continue_tail: count %u state: %u err: %u",
cf->count, cf->state, *err);*/
/* XXX - this cheats and looks inside the packet list to find the final
@@ -598,7 +598,7 @@ cf_continue_tail(capture_file *cf, int to_read, int *err)
} else if (*err != 0) {
/* We got an error reading the capture file.
XXX - pop up a dialog box instead? */
- g_warning("Error \"%s\" while reading: \"%s\"\n",
+ g_warning("Error \"%s\" while reading: \"%s\"\n",
wtap_strerror(*err), cf->filename);
return CF_READ_ERROR;
@@ -836,7 +836,7 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
} else
fdata->flags.passed_dfilter = 1;
- if( (fdata->flags.passed_dfilter)
+ if( (fdata->flags.passed_dfilter)
|| (edt->pi.fd->flags.ref_time) ){
/* This frame either passed the display filter list or is marked as
a time reference frame. All time reference frames are displayed
@@ -873,7 +873,7 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
row = packet_list_append(cf->cinfo.col_data, fdata);
- /* colorize packet: if packet is marked, use preferences,
+ /* colorize packet: if packet is marked, use preferences,
otherwise try to apply color filters */
if (fdata->flags.marked) {
fdata->color_filter = NULL;
@@ -972,7 +972,7 @@ cf_merge_files(char **out_filenamep, int in_file_count,
wtap_dumper *pdh;
int open_err, read_err, write_err, close_err;
gchar *err_info;
- int err_fileno;
+ int err_fileno;
int i;
char errmsg_errno[1024+1];
gchar err_str[2048+1];
@@ -1019,7 +1019,7 @@ cf_merge_files(char **out_filenamep, int in_file_count,
pdh = wtap_dump_fdopen(out_fd, file_type,
merge_select_frame_type(in_file_count, in_files),
- merge_max_snapshot_length(in_file_count, in_files),
+ merge_max_snapshot_length(in_file_count, in_files),
FALSE /* compressed */, &open_err);
if (pdh == NULL) {
eth_close(out_fd);
@@ -1213,7 +1213,7 @@ cf_filter_packets(capture_file *cf, gchar *dftext, gboolean force)
gchar *safe_dftext = simple_dialog_format_message(dftext);
gchar *safe_dfilter_error_msg = simple_dialog_format_message(
dfilter_error_msg);
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s%s%s\n"
"\n"
"The following display filter isn't a valid display filter:\n%s\n"
@@ -1758,7 +1758,7 @@ print_packet(capture_file *cf, frame_data *fdata,
/* Create the protocol tree, and make it visible, if we're printing
the dissection or the hex data.
XXX - do we need it if we're just printing the hex data? */
- proto_tree_needed =
+ proto_tree_needed =
args->print_args->print_dissections != print_dissections_none || args->print_args->print_hex;
edt = epan_dissect_new(proto_tree_needed, proto_tree_needed);
@@ -2317,7 +2317,7 @@ cf_change_time_formats(capture_file *cf)
large file, we might take considerably longer than that standard
time in order to get to the next progress bar step). */
if (progbar == NULL)
- progbar = delayed_create_progress_dlg("Changing", "time display",
+ progbar = delayed_create_progress_dlg("Changing", "time display",
TRUE, &stop_flag, &start_time, progbar_val);
/* Update the progress bar, but do it only N_PROGBAR_UPDATES times;
@@ -2469,7 +2469,7 @@ match_subtree_text(proto_node *node, gpointer data)
label_ptr = label_str;
proto_item_fill_label(fi, label_str);
}
-
+
/* Does that label match? */
label_len = strlen(label_ptr);
for (i = 0; i < label_len; i++) {
@@ -2486,7 +2486,7 @@ match_subtree_text(proto_node *node, gpointer data)
} else
c_match = 0;
}
-
+
/* Recurse into the subtree, if it exists */
if (node->first_child != NULL)
proto_tree_children_foreach(node, match_subtree_text, mdata);
@@ -2772,7 +2772,7 @@ find_packet(capture_file *cf,
large file, we might take considerably longer than that standard
time in order to get to the next progress bar step). */
if (progbar == NULL)
- progbar = delayed_create_progress_dlg("Searching", title,
+ progbar = delayed_create_progress_dlg("Searching", title,
FALSE, &stop_flag, &start_time, progbar_val);
/* Update the progress bar, but do it only N_PROGBAR_UPDATES times;
@@ -3056,6 +3056,11 @@ cf_select_packet(capture_file *cf, int row)
fdata = cf->first_displayed;
}
+ /* If fdata _still_ isn't set simply give up. */
+ if (fdata == NULL) {
+ return;
+ }
+
/* Get the data in that frame. */
if (!wtap_seek_read (cf->wth, fdata->file_off, &cf->pseudo_header,
cf->pd, fdata->cap_len, &err, &err_info)) {
@@ -3192,7 +3197,7 @@ cf_save(capture_file *cf, const char *fname, packet_range_t *range, guint save_f
packet_range_process_init(range);
-
+
if (packet_range_process_all(range) && save_format == cf->cd_t) {
/* We're not filtering packets, and we're saving it in the format
it's already in, so we can just move or copy the raw data. */
@@ -3245,7 +3250,7 @@ cf_save(capture_file *cf, const char *fname, packet_range_t *range, guint save_f
/* Either we're filtering packets, or we're saving in a different
format; we can't do that by copying or moving the capture file,
we have to do it by writing the packets out in Wiretap. */
- pdh = wtap_dump_open(fname, save_format, cf->lnk_t, cf->snap,
+ pdh = wtap_dump_open(fname, save_format, cf->lnk_t, cf->snap,
compressed, &err);
if (pdh == NULL) {
cf_open_failure_alert_box(fname, err, NULL, TRUE, save_format);