setclassenvironment: trim leading spaces in variable names
Trim leading spaces in variable names when the list is e.g. pretty-formatted in /etc/login.conf or ~/.login_conf. PR: 247947 Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D25649
This commit is contained in:
parent
68b7d9b56b
commit
eeaf9d562f
@ -231,12 +231,17 @@ setclassenvironment(login_cap_t *lc, const struct passwd * pwd, int paths)
|
|||||||
while (*set_env != NULL) {
|
while (*set_env != NULL) {
|
||||||
char *p = strchr(*set_env, '=');
|
char *p = strchr(*set_env, '=');
|
||||||
|
|
||||||
if (p != NULL) { /* Discard invalid entries */
|
if (p != NULL && p != *set_env) { /* Discard invalid entries */
|
||||||
|
const char *ep;
|
||||||
char *np;
|
char *np;
|
||||||
|
|
||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
|
/* Strip leading spaces from variable name */
|
||||||
|
ep = *set_env;
|
||||||
|
while (*ep == ' ' || *ep == '\t')
|
||||||
|
ep++;
|
||||||
if ((np = substvar(p, pwd, hlen, pch, nlen)) != NULL) {
|
if ((np = substvar(p, pwd, hlen, pch, nlen)) != NULL) {
|
||||||
setenv(*set_env, np, 1);
|
setenv(ep, np, 1);
|
||||||
free(np);
|
free(np);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user