aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorTobias Stoeckmann <tobias@stoeckmann.org>2024-01-01 22:10:21 +0100
committerDmitry V. Levin <ldv@strace.io>2024-01-02 18:24:08 +0000
commitf9d38b1f0cba7447573d1b773aeae4bde0421ef9 (patch)
treea1ba8430c60766093dc9d0a511fd6445154435d5 /modules
parentf669db5a94ac46a5b21ab58821cf94ece0442886 (diff)
downloadpam-f9d38b1f0cba7447573d1b773aeae4bde0421ef9.tar.gz
pam-f9d38b1f0cba7447573d1b773aeae4bde0421ef9.tar.bz2
pam-f9d38b1f0cba7447573d1b773aeae4bde0421ef9.zip
pam_wheel: do not truncate group
If a pam configuration file contains a very long group name, do not silently truncate it. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Diffstat (limited to 'modules')
-rw-r--r--modules/pam_wheel/pam_wheel.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/modules/pam_wheel/pam_wheel.c b/modules/pam_wheel/pam_wheel.c
index 179f56b3..dd047afb 100644
--- a/modules/pam_wheel/pam_wheel.c
+++ b/modules/pam_wheel/pam_wheel.c
@@ -54,11 +54,11 @@
static int
_pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
- char *use_group, size_t group_length)
+ const char **use_group)
{
int ctrl=0;
- memset(use_group, '\0', group_length);
+ *use_group = "";
/* step through arguments */
for (ctrl=0; argc-- > 0; ++argv) {
@@ -77,7 +77,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
else if (!strcmp(*argv,"root_only"))
ctrl |= PAM_ROOT_ONLY_ARG;
else if ((str = pam_str_skip_prefix(*argv, "group=")) != NULL)
- strncpy(use_group, str, group_length - 1);
+ *use_group = str;
else {
pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
}
@@ -237,10 +237,10 @@ int
pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
int argc, const char **argv)
{
- char use_group[BUFSIZ];
+ const char *use_group;
int ctrl;
- ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group));
+ ctrl = _pam_parse(pamh, argc, argv, &use_group);
return perform_check(pamh, ctrl, use_group);
}
@@ -256,10 +256,10 @@ int
pam_sm_acct_mgmt (pam_handle_t *pamh, int flags UNUSED,
int argc, const char **argv)
{
- char use_group[BUFSIZ];
+ const char *use_group;
int ctrl;
- ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group));
+ ctrl = _pam_parse(pamh, argc, argv, &use_group);
return perform_check(pamh, ctrl, use_group);
}