diff options
author | Tobias Stoeckmann <tobias@stoeckmann.org> | 2023-12-15 11:54:03 +0100 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2023-12-19 12:22:59 +0000 |
commit | 2a3a6462c55b344ea66cdd8bbfb621387e2568be (patch) | |
tree | 77e8d3e24704a0a378eee91fcf91d97b3162fda4 /modules/pam_mkhomedir/mkhomedir_helper.c | |
parent | bad0bb2ff9259efe0334bcc283f64a4135ad14a8 (diff) | |
download | pam-2a3a6462c55b344ea66cdd8bbfb621387e2568be.tar.gz pam-2a3a6462c55b344ea66cdd8bbfb621387e2568be.tar.bz2 pam-2a3a6462c55b344ea66cdd8bbfb621387e2568be.zip |
pam_mkhomedir: avoid string copying
The characters in skeldir are only assigned, not modified later on.
Use a const char pointer instead which is easier to verify.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Diffstat (limited to 'modules/pam_mkhomedir/mkhomedir_helper.c')
-rw-r--r-- | modules/pam_mkhomedir/mkhomedir_helper.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/modules/pam_mkhomedir/mkhomedir_helper.c b/modules/pam_mkhomedir/mkhomedir_helper.c index 3bbcb0cf..eefb5999 100644 --- a/modules/pam_mkhomedir/mkhomedir_helper.c +++ b/modules/pam_mkhomedir/mkhomedir_helper.c @@ -32,7 +32,7 @@ struct dir_spec { }; static unsigned long u_mask = 0022; -static char skeldir[BUFSIZ] = "/etc/skel"; +static const char *skeldir = "/etc/skel"; static int create_homedir(struct dir_spec *, const struct passwd *, mode_t, const char *, const char *); @@ -420,11 +420,7 @@ main(int argc, char *argv[]) } if (argc >= 4) { - if (strlen(argv[3]) >= sizeof(skeldir)) { - pam_syslog(NULL, LOG_ERR, "Too long skeldir path."); - return PAM_SESSION_ERR; - } - strcpy(skeldir, argv[3]); + skeldir = argv[3]; } if (argc >= 5) { |