diff options
author | Changqing Li <changqing.li@windriver.com> | 2021-01-12 14:45:34 +0800 |
---|---|---|
committer | Tomáš Mráz <tm@t8m.info> | 2021-01-27 08:36:28 +0100 |
commit | d54870f993e97fe75e2cd0470a3701d5af22877c (patch) | |
tree | 1bcd720a232d15778839842f6aef1fd2986f7518 /modules/pam_faillock | |
parent | e842a5fc075002f46672ebcd8e896624f1ec8068 (diff) | |
download | pam-d54870f993e97fe75e2cd0470a3701d5af22877c.tar.gz pam-d54870f993e97fe75e2cd0470a3701d5af22877c.tar.bz2 pam-d54870f993e97fe75e2cd0470a3701d5af22877c.zip |
faillock: create tallydir before creating tallyfile
The default tallydir is "/var/run/faillock", and this default
tallydir may not exist.
Function open may fail as tallydir does not exist when creating
the tallyfile. Therefore, faillock will not work well.
Fix this problem by creating tallydir before creating tallyfile
when the tallydir does not exist.
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Diffstat (limited to 'modules/pam_faillock')
-rw-r--r-- | modules/pam_faillock/faillock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/modules/pam_faillock/faillock.c b/modules/pam_faillock/faillock.c index 4ea94cbe..091f253a 100644 --- a/modules/pam_faillock/faillock.c +++ b/modules/pam_faillock/faillock.c @@ -74,6 +74,9 @@ open_tally (const char *dir, const char *user, uid_t uid, int create) if (create) { flags |= O_CREAT; + if (access(dir, F_OK) != 0) { + mkdir(dir, 0755); + } } fd = open(path, flags, 0660); |