Have "cf_merge_files()" always close "out_fd" before returning; it does
authorGuy Harris <guy@alum.mit.edu>
Tue, 15 Feb 2005 20:01:24 +0000 (20:01 -0000)
committerGuy Harris <guy@alum.mit.edu>
Tue, 15 Feb 2005 20:01:24 +0000 (20:01 -0000)
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

file.c
gtk/drag_and_drop.c
gtk/file_dlg.c

diff --git a/file.c b/file.c
index 01d06f54447c50c2281ac82faf842031645eccb6..09d074038f9238831fa6993a79a2b873cafe917f 100644 (file)
--- a/file.c
+++ b/file.c
@@ -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,
index 401f5803b7ea3c99120957688dc26c8e6535f380..fbdbafb897ed91967f4d367e54201295c4999e53 100644 (file)
@@ -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 */
index 54864ec3668076a57e1dd1d9e30f34efdf49f10b..92d16ed651a8b8736b4d4323e26e91a7542ebaba 100644 (file)
@@ -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;