From 47c5c31a6ceb6abe8b406eb74d87aa429c3b93ea Mon Sep 17 00:00:00 2001 From: "Andrew G. Morgan" Date: Fri, 12 Oct 2001 06:13:10 +0000 Subject: Relevant BUGIDs: 435991 Purpose of commit: bugfix Commit summary: --------------- use strncpy, and even then remember to nul terminate. Courtesy of Harald Welte. --- modules/pam_mkhomedir/pam_mkhomedir.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'modules/pam_mkhomedir/pam_mkhomedir.c') 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); } } -- cgit v1.2.3