From 3b5cadd654d759fbc0103ce94190fc47cbae35df Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Thu, 19 Apr 2001 14:41:29 +0000 Subject: [PATCH] (do_store): call closefunc before claiming that everything went ok, if the close fails the file might not have been stored properly git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9792 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/ftp/ftpd/ftpd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/appl/ftp/ftpd/ftpd.c b/appl/ftp/ftpd/ftpd.c index 829e100bb..698c93a44 100644 --- a/appl/ftp/ftpd/ftpd.c +++ b/appl/ftp/ftpd/ftpd.c @@ -1187,18 +1187,22 @@ do_store(char *name, char *mode, int unique) goto done; set_buffer_size(fileno(din), 1); if (receive_data(din, fout) == 0) { + if((*closefunc)(fout) < 0) + perror_reply(552, name); + else { if (unique) reply(226, "Transfer complete (unique file name:%s).", name); else reply(226, "Transfer complete."); - } + } + } else + (*closefunc)(fout); fclose(din); data = -1; pdata = -1; done: LOGBYTES(*mode == 'w' ? "put" : "append", name, byte_count); - (*closefunc)(fout); } static FILE *