diff options
| author | Tom Yu <tlyu@mit.edu> | 1998-04-11 03:27:10 +0000 |
|---|---|---|
| committer | Tom Yu <tlyu@mit.edu> | 1998-04-11 03:27:10 +0000 |
| commit | 7d47f1f5516393f08be5aaa62559cbdacd6abdd2 (patch) | |
| tree | da5ed8b27e09c490634ccdec7a98d807b926dc12 | |
| parent | 12e5e5e70cf1cee31abbd99b615ce6eb5ddf8317 (diff) | |
| download | krb5-7d47f1f5516393f08be5aaa62559cbdacd6abdd2.tar.gz krb5-7d47f1f5516393f08be5aaa62559cbdacd6abdd2.tar.xz krb5-7d47f1f5516393f08be5aaa62559cbdacd6abdd2.zip | |
(send_file_list): Oops missed a sigsetjmp() call.
(send_data): Add call to secure_flush() to send a zero length
buffer when aborting.
(send_file_list): Add call to secure_flush() to send a zero length
buffer when aborting.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10528 dc483132-0cff-0310-8789-dd5450dbe970
| -rw-r--r-- | src/appl/gssftp/ftpd/ChangeLog | 5 | ||||
| -rw-r--r-- | src/appl/gssftp/ftpd/ftpd.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/appl/gssftp/ftpd/ChangeLog b/src/appl/gssftp/ftpd/ChangeLog index fd13cf535..2a9bee278 100644 --- a/src/appl/gssftp/ftpd/ChangeLog +++ b/src/appl/gssftp/ftpd/ChangeLog @@ -3,6 +3,11 @@ Fri Apr 10 20:06:31 1998 Tom Yu <tlyu@mit.edu> * ftpd.c (receive_data): (send_data): Add support for sigsetjmp(). (main): Use sigaction() if we can to avoid SysV lossage. + (send_file_list): Oops missed a sigsetjmp() call. + (send_data): Add call to secure_flush() to send a zero length + buffer when aborting. + (send_file_list): Add call to secure_flush() to send a zero length + buffer when aborting. * ftpcmd.y (PBSZ): Remove restriction on shrinking buffer size. diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c index 45e561f95..9fa9af2c1 100644 --- a/src/appl/gssftp/ftpd/ftpd.c +++ b/src/appl/gssftp/ftpd/ftpd.c @@ -1182,6 +1182,7 @@ void send_data(instr, outstr, blksize) transflag++; if (sigsetjmp(urgcatch, 1)) { transflag = 0; + (void)secure_flush(fileno(outstr)); return; } switch (type) { @@ -2200,8 +2201,9 @@ send_file_list(whichfiles) simple = 1; } - if (setjmp(urgcatch)) { + if (sigsetjmp(urgcatch, 1)) { transflag = 0; + (void)secure_flush(fileno(dout)); return; } while (dirname = *dirlist++) { |
