* ftpd.c (login): Check that the luid is not the uid we want to
authorTom Yu <tlyu@mit.edu>
Fri, 26 Mar 1999 04:15:57 +0000 (04:15 +0000)
committerTom Yu <tlyu@mit.edu>
Fri, 26 Mar 1999 04:15:57 +0000 (04:15 +0000)
change to prior to calling setluid() so that we can run as
non-root.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11316 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/gssftp/ftpd/ChangeLog
src/appl/gssftp/ftpd/ftpd.c

index 3c77278832a5d321e25a8ce35b757c8f44751dcd..c84e770288aeb6adda5d10f953739b5a07e002c6 100644 (file)
@@ -1,3 +1,9 @@
+Thu Mar 25 23:13:56 1999  Tom Yu  <tlyu@mit.edu>
+
+       * ftpd.c (login): Check that the luid is not the uid we want to
+       change to prior to calling setluid() so that we can run as
+       non-root.
+
 Wed Mar 24 17:11:32 1999  Tom Yu  <tlyu@mit.edu>
 
        * ftpcmd.y (urgsafe_getc): New function; like getc() except it
index f880734a5efb9182249edf06d8557700f698acc4..d4987affcf160e96144e553cf17d79eaf850c06b 100644 (file)
@@ -1093,7 +1093,8 @@ login(passwd)
         * set the login uid. If this fails this opens up a problem on DEC OSF
         * with C2 enabled.
         */
-       if (setluid((uid_t)pw->pw_uid) < 0) {
+       if (((uid_t)getluid() != pw->pw_uid)
+           && setluid((uid_t)pw->pw_uid) < 0) {
                reply(550, "Can't set luid.");
                goto bad;
        }