From: Tom Yu Date: Tue, 29 Sep 2009 01:39:02 +0000 (+0000) Subject: pull up r22519 from trunk X-Git-Tag: krb5-1.7.1-beta1~27 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=abc8b7500aa4938b7ebd98468a72c2c6bbe3ac54;p=krb5.git pull up r22519 from trunk ------------------------------------------------------------------------ r22519 | ghudson | 2009-08-12 14:53:47 -0400 (Wed, 12 Aug 2009) | 12 lines ticket: 6543 subject: Reply message ordering bug in ftpd tags: pullup target_version: 1.7 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 version_fixed: 1.7.1 status: resolved git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-7@22812 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c index 71e985529..d8278128c 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; }