Reinstate complete (and now correctly functioning) WARNS=2.

This commit is contained in:
Mark Murray 2001-09-12 19:15:02 +00:00
parent fea88e76d7
commit 69ebfe3495
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=83373
2 changed files with 11 additions and 9 deletions

View File

@ -6,9 +6,7 @@ PROG= su
DPADD+= ${LIBUTIL} ${LIBPAM}
LDADD+= -lutil ${MINUSLPAM}
# Cannot be enabled because of a truly nasty warning/problem
# concering execv(2)'s second argument.
#WARNS?= 2
WARNS?= 2
BINMODE=4555
INSTALLFLAGS=-fschg

View File

@ -114,13 +114,17 @@ main(int argc, char *argv[])
struct pam_conv conv = {misc_conv, NULL};
enum tristate iscsh;
login_cap_t *lc;
union {
const char **a;
char * const *b;
} np;
uid_t ruid;
gid_t gid;
int asme, ch, asthem, fastlogin, prio, i, setwhat, retcode,
statusp, child_pid, child_pgrp, ret_pid;
char *username, *cleanenv, *class, shellbuf[MAXPATHLEN],
myhost[MAXHOSTNAMELEN + 1];
const char *p, *user, *shell, *mytty, **nargv, **np;
const char *p, *user, *shell, *mytty, **nargv;
shell = class = cleanenv = NULL;
asme = asthem = fastlogin = statusp = 0;
@ -165,7 +169,7 @@ main(int argc, char *argv[])
nargv[argc + 3] = NULL;
for (i = argc; i >= optind; i--)
nargv[i + 3] = argv[i];
np = &nargv[i + 3];
np.a = &nargv[i + 3];
argv += optind;
@ -378,18 +382,18 @@ main(int argc, char *argv[])
if (iscsh == YES) {
if (fastlogin)
*np-- = "-f";
*np.a-- = "-f";
if (asme)
*np-- = "-m";
*np.a-- = "-m";
}
/* csh strips the first character... */
*np = asthem ? "-su" : iscsh == YES ? "_su" : "su";
*np.a = asthem ? "-su" : iscsh == YES ? "_su" : "su";
if (ruid != 0)
syslog(LOG_NOTICE, "%s to %s%s", username, user,
ontty());
execv(shell, np);
execv(shell, np.b);
err(1, "%s", shell);
}
}