From: Greg Hudson Date: Wed, 12 Aug 2009 18:53:47 +0000 (+0000) Subject: Reply message ordering bug in ftpd X-Git-Tag: krb5-1.8-alpha1~390 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7d9d2c14150ab8df01c67fce258a27f6103eac4;p=thirdparty%2Fkrb5.git 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 --- diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c index 51072ee607..ad3c4201a8 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; }