git: 913a9cc33ea5 - stable/12 - setclassenvironment: trim leading spaces in variable names
Yuri Pankov
yuripv at FreeBSD.org
Thu Apr 15 19:22:21 UTC 2021
The branch stable/12 has been updated by yuripv:
URL: https://cgit.FreeBSD.org/src/commit/?id=913a9cc33ea55538f2c3366016f79f4b2a79e3d0
commit 913a9cc33ea55538f2c3366016f79f4b2a79e3d0
Author: Yuri Pankov <yuripv at FreeBSD.org>
AuthorDate: 2021-04-11 22:02:12 +0000
Commit: Yuri Pankov <yuripv at FreeBSD.org>
CommitDate: 2021-04-15 19:19:43 +0000
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
(cherry picked from commit eeaf9d562fe137e0c52b8c346742dccfc8bde015)
---
lib/libutil/login_class.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/libutil/login_class.c b/lib/libutil/login_class.c
index bd1ddff90111..4925c7a04664 100644
--- a/lib/libutil/login_class.c
+++ b/lib/libutil/login_class.c
@@ -232,12 +232,17 @@ setclassenvironment(login_cap_t *lc, const struct passwd * pwd, int paths)
while (*set_env != NULL) {
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;
*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) {
- setenv(*set_env, np, 1);
+ setenv(ep, np, 1);
free(np);
}
}
More information about the dev-commits-src-branches
mailing list