diff --git a/appl/rcp/rcp.c b/appl/rcp/rcp.c index e61246ac3..9a138c784 100644 --- a/appl/rcp/rcp.c +++ b/appl/rcp/rcp.c @@ -119,13 +119,15 @@ main(int argc, char **argv) if (fflag) { /* Follow "protocol", send data. */ response(); - setuid(userid); + if (setuid(userid) < 0) + errx(1, "setuid failed"); source(argc, argv); exit(errs); } if (tflag) { /* Receive data. */ - setuid(userid); + if (setuid(userid) < 0) + errx(1, "setuid failed"); sink(argc, argv); exit(errs); } @@ -221,7 +223,8 @@ toremote(char *targ, int argc, char **argv) if (response() < 0) exit(1); free(bp); - setuid(userid); + if (setuid(userid) < 0) + errx(1, "setuid failed"); } source(1, argv+i); } diff --git a/appl/rcp/util.c b/appl/rcp/util.c index a50c1d5f9..58f8b1527 100644 --- a/appl/rcp/util.c +++ b/appl/rcp/util.c @@ -112,7 +112,8 @@ susystem(s, userid) return (127); case 0: - (void)setuid(userid); + if (setuid(userid) < 0) + _exit(127); execl(_PATH_BSHELL, "sh", "-c", s, NULL); _exit(127); }