Subject: vr17 solaris2.5.1-x86 SIGSEGV in checkuser

From: Ron Snyder <[email-masked]>
Date: Fri, 21 May 1999 10:57:11 PDT

I searched the archives and didn't see anything similar to my
problem (although I did try a few of the suggestions I saw there).

Platform info:
pentium II, solaris 2.5.1 
gcc 2.8.1
wu-ftpd vr17
(anything else needed?)

(I'm invoking ftpd with -a -d -p2101 -s -L  (from the command line) although
I've used fewer parameters and have not seen any improvement)

I don't do anything special to build it (just 'build sol').

When a user tries to connect and they have a valid shell, ftpd
gets a SEGV when it tries to read the ftpusers file (in checkusers).
If the user doesn't have a valid shell, it doesn't SEGV (because
checkusers isn't called in that case).

However, if I try to login as "nobody" first (or apparently any user
that doesn't have a shell listed) and then issue a "user snyder", it
will allow me to enter my password and issue a few commands (pwd and
cd are all I've tested successfully), but I can't do a dir (ftpd seems
to get stuck on a connect system call).  Hmm, I just put my client in
passive mode, and now the dir works.  

At first I thought the problem was really in checkuser, but given
that a call to checkuser succeeds in one certain case, I think
the problem lies elsewhere, and checkuser is the victim of some other
misbehavior.

Has anyone else seen this and (hopefully) fixed it?

-ron