diff options
author | Andrew G. Morgan <morgan@kernel.org> | 2001-10-12 06:13:10 +0000 |
---|---|---|
committer | Andrew G. Morgan <morgan@kernel.org> | 2001-10-12 06:13:10 +0000 |
commit | 47c5c31a6ceb6abe8b406eb74d87aa429c3b93ea (patch) | |
tree | bf9ac7ab982ac91da3a485e161ac8981c4bdabaf /modules/pam_mkhomedir | |
parent | 094652b733bf2422420213c4e87af920ff05e6f3 (diff) | |
download | pam-47c5c31a6ceb6abe8b406eb74d87aa429c3b93ea.tar.gz pam-47c5c31a6ceb6abe8b406eb74d87aa429c3b93ea.tar.bz2 pam-47c5c31a6ceb6abe8b406eb74d87aa429c3b93ea.zip |
Relevant BUGIDs: 435991
Purpose of commit: bugfix
Commit summary:
---------------
use strncpy, and even then remember to nul terminate. Courtesy of Harald Welte.
Diffstat (limited to 'modules/pam_mkhomedir')
-rw-r--r-- | modules/pam_mkhomedir/pam_mkhomedir.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/modules/pam_mkhomedir/pam_mkhomedir.c b/modules/pam_mkhomedir/pam_mkhomedir.c index ec05993d..ec6bd46d 100644 --- a/modules/pam_mkhomedir/pam_mkhomedir.c +++ b/modules/pam_mkhomedir/pam_mkhomedir.c @@ -57,7 +57,7 @@ #define MKHOMEDIR_QUIET 040 /* keep quiet about things */ static unsigned int UMask = 0022; -static char SkelDir[BUFSIZ] = "/etc/skel"; +static char SkelDir[BUFSIZ] = "/etc/skel"; /* THIS MODULE IS NOT THREAD SAFE */ /* some syslogging */ static void _log_err(int err, const char *format, ...) @@ -82,16 +82,14 @@ static int _pam_parse(int flags, int argc, const char **argv) /* step through arguments */ for (; argc-- > 0; ++argv) { - if (!strcmp(*argv, "silent")) - { + if (!strcmp(*argv, "silent")) { ctrl |= MKHOMEDIR_QUIET; - } - else if (!strncmp(*argv,"umask=",6)) + } else if (!strncmp(*argv,"umask=",6)) { UMask = strtol(*argv+6,0,0); - else if (!strncmp(*argv,"skel=",5)) - strcpy(SkelDir,*argv+5); - else - { + } else if (!strncmp(*argv,"skel=",5)) { + strncpy(SkelDir,*argv+5,sizeof(SkelDir)); + SkelDir[sizeof(SkelDir)-1] = '\0'; + } else { _log_err(LOG_ERR, "unknown option; %s", *argv); } } |