git: c328e6c6ccaa - main - setclassumask(): Accept 'inherit' as a value
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 29 Jan 2024 22:32:09 UTC
The branch main has been updated by olce:
URL: https://cgit.FreeBSD.org/src/commit/?id=c328e6c6ccaa4cdf921c16d68a2f2c5992dd3b72
commit c328e6c6ccaa4cdf921c16d68a2f2c5992dd3b72
Author: Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2023-06-20 19:41:04 +0000
Commit: Olivier Certner <olce@FreeBSD.org>
CommitDate: 2024-01-29 21:58:06 +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
---
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 c8dd2cd66563..933d9bc4fe1f 100644
--- a/lib/libutil/login_class.c
+++ b/lib/libutil/login_class.c
@@ -380,6 +380,11 @@ setclasscontext(const char *classname, unsigned int flags)
}
+static const char * const inherit_enum[] = {
+ "inherit",
+ NULL
+};
+
/*
* Private function setting umask from the login class.
*/
@@ -391,7 +396,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) {