From c7d9d2c14150ab8df01c67fce258a27f6103eac4 Mon Sep 17 00:00:00 2001 From: Greg Hudson Date: Wed, 12 Aug 2009 18:53:47 +0000 Subject: [PATCH] Reply message ordering bug in ftpd user() was replying to the user command and then calling login(), which could send a continuation reply if it fails to chdir to the user's homedir. Continuation replies must come before the actual reply; the mis-ordering was causing ftp and ftpd to deadlock. To fix the bug, invoke login() before reply() so that the continuation reply comes first. ticket: 6543 tags: pullup target_version: 1.7 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22519 dc483132-0cff-0310-8789-dd5450dbe970 --- src/appl/gssftp/ftpd/ftpd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c index 51072ee60..ad3c4201a 100644 --- a/src/appl/gssftp/ftpd/ftpd.c +++ b/src/appl/gssftp/ftpd/ftpd.c @@ -758,11 +758,10 @@ user(name) result = 331; } else result = 232; - reply(result, "%s", buf); - syslog(authorized ? LOG_INFO : LOG_ERR, "%s", buf); - if (result == 232) login(NULL, result); + reply(result, "%s", buf); + syslog(authorized ? LOG_INFO : LOG_ERR, "%s", buf); return; } -- 2.26.2