]> git.sesse.net Git - betaftpd/blobdiff - cmds.c
Fixed another ordering bug with respect to seteuid() vs. setegid().
[betaftpd] / cmds.c
diff --git a/cmds.c b/cmds.c
index 5bc5bc2e2d6e1475f605ecee6445e4ae84b2d027..08095378529aee15ad159caa62543cd32b854119 100644 (file)
--- a/cmds.c
+++ b/cmds.c
@@ -416,8 +416,8 @@ int cmd_port(struct conn * const c)
 #endif
                bind(sock, (struct sockaddr *)&sin, sizeof(sin));
 #if !WANT_NONROOT
-               seteuid(c->uid);
                setegid(c->gid);
+               seteuid(c->uid);
 #endif
 
                f->sin.sin_family = AF_INET;
@@ -1609,8 +1609,8 @@ void parse_command(struct conn *c)
 
 #if !WANT_NONROOT
                                if (h->do_setuid) {
-                                       seteuid(c->uid);
                                        setegid(c->gid);
+                                       seteuid(c->uid);
                                } else {
                                        seteuid(getuid());
                                        setegid(getgid());
@@ -1845,7 +1845,7 @@ int prepare_for_listing(struct conn * const c, char ** const ptr,
                        case 'F':
                                lo->classify = 1;
                                break;
-                       case ' ':
+                       case '\0':
                                fptr = optr + 1;
                                *(optr--) = 0;
                                break;
@@ -1856,7 +1856,7 @@ int prepare_for_listing(struct conn * const c, char ** const ptr,
        } else {
                fptr = c->recv_buf;
        }
-       
+
        /* then we chdir to the dir in fptr (if any) */
        tmp = fptr ? strrchr(fptr, '/') : NULL;
        if (tmp != NULL) {