Close previously opened file descriptor when mkstemp fails in recv_files().
authorDavid Dykstra <dwd@samba.org>
Tue, 28 May 2002 15:42:51 +0000 (15:42 +0000)
committerDavid Dykstra <dwd@samba.org>
Tue, 28 May 2002 15:42:51 +0000 (15:42 +0000)
Every other failure condition in that function was alreadying doing this,
and I saw a case with a lot of "mkstemp...No space left on device" messages
started becoming "mkstemp...Too many open files" messages because of this
bug.  Not that it makes a whole lot of difference, since nothing gets copied
because the disk was out of space.

receiver.c

index 1428233..a4a3383 100644 (file)
@@ -429,6 +429,7 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
                        rprintf(FERROR,"mkstemp %s failed: %s\n",fnametmp,strerror(errno));
                        receive_data(f_in,buf,-1,NULL,file->length);
                        if (buf) unmap_file(buf);
+                       if (fd1 != -1) close(fd1);
                        continue;
                }