git: 16e02df98ad6 - stable/13 - setclassumask(): Accept 'inherit' as a value
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 01 Feb 2024 21:26:04 UTC
The branch stable/13 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=16e02df98ad64753fed6ab73c1d1c2aa857b6394 commit 16e02df98ad64753fed6ab73c1d1c2aa857b6394 Author: Olivier Certner <olce@FreeBSD.org> AuthorDate: 2023-06-20 19:41:04 +0000 Commit: Olivier Certner <olce@FreeBSD.org> CommitDate: 2024-02-01 21:23:11 +0000 setclassumask(): Accept 'inherit' as a value 'inherit' explicitly indicates that the umask should not be changed. Reviewed by: emaste Approved by: emaste (mentor) MFC after: 3 days Relnotes: yes Sponsored by: Kumacom SAS Differential Revision: https://reviews.freebsd.org/D40687 (cherry picked from commit c328e6c6ccaa4cdf921c16d68a2f2c5992dd3b72) Approved by: markj (mentor) --- lib/libutil/login_class.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/libutil/login_class.c b/lib/libutil/login_class.c index 69230db32961..e6485afade43 100644 --- a/lib/libutil/login_class.c +++ b/lib/libutil/login_class.c @@ -381,6 +381,11 @@ setclasscontext(const char *classname, unsigned int flags) } +static const char * const inherit_enum[] = { + "inherit", + NULL +}; + /* * Private function setting umask from the login class. */ @@ -392,7 +397,13 @@ setclassumask(login_cap_t *lc, const struct passwd *pwd) * indicating no specification. */ const rlim_t def_val = INT64_MIN + 1, err_val = INT64_MIN; - const rlim_t val = login_getcapnum(lc, "umask", def_val, err_val); + rlim_t val; + + /* If value is "inherit", nothing to change. */ + if (login_getcapenum(lc, "umask", inherit_enum) == 0) + return; + + val = login_getcapnum(lc, "umask", def_val, err_val); if (val != def_val) { if (val < 0 || val > UINT16_MAX) {