You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
1 month ago
|
From d54870f993e97fe75e2cd0470a3701d5af22877c Mon Sep 17 00:00:00 2001
|
||
|
From: Changqing Li <changqing.li@windriver.com>
|
||
|
Date: Tue, 12 Jan 2021 14:45:34 +0800
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
modules/pam_faillock/faillock.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
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);
|
||
|
--
|
||
|
2.43.0
|
||
|
|