Subject: Re: Release of beta13 delayed

From: Steven Bolbot <[email-masked]>
Date: Fri, 21 Feb 1997 10:06:37 +1000

At 10:02 PM 2/20/97 GMT, you wrote:
>
>I regret to inform all interested that I am backing up the release of beta13
>another week. 
*pout*
Never mind... good things come to those who wait :)
- Steven Bolbot
------------------------------------------------------------------------------
   ,-      __             -,     
  /   \___/ /__ _  _____/   \    Steven Bolbot.
 /  _ / _  / _ \ |/ / -_) _  \   Assistant Network Manager, DOVE Australia.   
/.-   \_,_/\___/___/\__/    -.\  Email: [email-masked]
       A U S T R A L I A         Finger [email-masked] for my PGP public key.
      http://dove.net.au         
------------------------------------------------------------------------------

---

From: Michael Brennen <[email-masked]>
Date: Thu, 20 Feb 1997 18:19:34 -0600 (CST)

This may be good.  I saw some SIGSEGVs today from a guest user logging in
with the wrong username.  Haven't had time to chase it down.

   -- Michael

> I regret to inform all interested that I am backing up the release of
> beta13 another week.

---

From: Michael Bracewell <[email-masked]>
Date: Mon, 24 Feb 1997 09:20:18 -0500 (EST)

Michael Brennen sez:
| 
| 
| This may be good.  I saw some SIGSEGVs today from a guest user logging in
| with the wrong username.  Haven't had time to chase it down.
| 

I found at least one of these...it seems that if a non-anonymous user (real
or guest) passes acl evaluation the server goes on to make sure his passwd
entry has a valid shell (via getusershell() and friends) before allowing
access...  if the user attempting to login has a login shell _not listed in
/etc/shells_ (or one of the getusershell() defaults of course) OR the user is
listed in /etc/ftpusers (explicitly denying access), the daemon sends back a
530-level response to inform the user that access is denied -- herein lies
the problem.  It seems that the 530 error message has two "%s" tokens in the
format and only one string passed to be expanded, resulting in the SEGV.

Okay, here's a patch to BETA-12 for those interested [Stan - Sorry if this is
a duplicate; I haven't seen it mentioned explicitly though]:

*** ftpd.c.orig	Mon Jan 20 00:05:11 1997
--- ftpd.c	Mon Feb 10 17:20:19 1997
***************
*** 1178,1187 ****
                  break;
          endusershell();
          if (cp == NULL || checkuser(name)) {
!             reply(530, "User %s access denied...(%s)", name);
  /*            if (logging)	-- inconsistent, removed.  _H*/
                  syslog(LOG_NOTICE,
!                        "FTP LOGIN REFUSED (bad shell) FROM %s [%s], %s",
                         remotehost, remoteaddr, name);
              pw = (struct passwd *) NULL;
              return;
--- 1178,1187 ----
                  break;
          endusershell();
          if (cp == NULL || checkuser(name)) {
!             reply(530, "User %s access denied...(bad shell|ftpusers)", name);
  /*            if (logging)	-- inconsistent, removed.  _H*/
                  syslog(LOG_NOTICE,
!                        "FTP LOGIN REFUSED (bad shell|ftpusers) FROM %s [%s], %s",
                         remotehost, remoteaddr, name);
              pw = (struct passwd *) NULL;
              return;
---------------------------------  END OF PATCH  ----------------------------

advTHANKSance!
-- 
Michael Bracewell <[email-masked]>
Office of Information and Instructional Technology
Technology Support Services
Board of Regents of the University System of Georgia