summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1998-04-11 03:27:10 +0000
committerTom Yu <tlyu@mit.edu>1998-04-11 03:27:10 +0000
commit7d47f1f5516393f08be5aaa62559cbdacd6abdd2 (patch)
treeda5ed8b27e09c490634ccdec7a98d807b926dc12 /src
parent12e5e5e70cf1cee31abbd99b615ce6eb5ddf8317 (diff)
downloadkrb5-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
Diffstat (limited to 'src')
-rw-r--r--src/appl/gssftp/ftpd/ChangeLog5
-rw-r--r--src/appl/gssftp/ftpd/ftpd.c4
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++) {