diff options
author | Guy Harris <guy@alum.mit.edu> | 2005-02-15 20:01:24 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2005-02-15 20:01:24 +0000 |
commit | ea7ef54b0da23a170ed61de375f281f592d6f551 (patch) | |
tree | 9475d6f687f0a379c3fb2b6e178320d7dbc32d80 | |
parent | 1aa4357464da99ee93588e1145cb549105f6b1a3 (diff) |
Have "cf_merge_files()" always close "out_fd" before returning; it does
so if "wtap_dump_fdopen()" succeeds (as a side-effect of calling
"wtap_dump_close()"), even if "cf_merge_fails()" after that, so it
should do so if it fails.
That means we don't need to close it in the callers of "cf_merge_files()".
svn path=/trunk/; revision=13407
-rw-r--r-- | file.c | 1 | ||||
-rw-r--r-- | gtk/drag_and_drop.c | 14 | ||||
-rw-r--r-- | gtk/file_dlg.c | 1 |
3 files changed, 8 insertions, 8 deletions
@@ -981,6 +981,7 @@ cf_merge_files(const char *out_filename, int out_fd, int in_file_count, merge_select_frame_type(in_file_count, in_files), merge_max_snapshot_length(in_file_count, in_files), &open_err); if (pdh == NULL) { + close(out_fd); merge_close_in_files(in_file_count, in_files); free(in_files); cf_open_failure_alert_box(out_filename, open_err, err_info, TRUE, diff --git a/gtk/drag_and_drop.c b/gtk/drag_and_drop.c index 401f5803b7..fbdbafb897 100644 --- a/gtk/drag_and_drop.c +++ b/gtk/drag_and_drop.c @@ -148,7 +148,6 @@ dnd_merge_files(int in_file_count, char **in_filenames) if (!merge_ok) { /* merge failed */ - close(out_fd); /* XXX - isn't it already closed? */ return; } @@ -240,12 +239,13 @@ dnd_open_file_cmd(GtkSelectionData *selection_data) break; case(1): /* open and read the capture file (this will close an existing file) */ - if (cf_open(&cfile, in_filenames[0], FALSE, &err) == CF_OK) { - cf_read(&cfile); - add_menu_recent_capture_file(in_filenames[0]); - } else { - /* the capture file couldn't be read (doesn't exist, file format unknown, ...) */ - } + if (cf_open(&cfile, in_filenames[0], FALSE, &err) == CF_OK) { + /* XXX - add this to the menu if the read fails? */ + cf_read(&cfile); + add_menu_recent_capture_file(in_filenames[0]); + } else { + /* the capture file couldn't be read (doesn't exist, file format unknown, ...) */ + } break; default: /* build and show the info dialog */ diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c index 54864ec366..92d16ed651 100644 --- a/gtk/file_dlg.c +++ b/gtk/file_dlg.c @@ -1057,7 +1057,6 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) { g_free(cf_name); if (merge_status != CF_OK) { - close(out_fd); /* XXX - it's already closed, right? */ if (rfcode != NULL) dfilter_free(rfcode); return; |