diff options
author | Bastien Nocera <hadess@hadess.net> | 2020-01-24 00:47:24 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2020-01-24 00:51:13 +0100 |
commit | 42f5280a030f2e2065d72d42db71cecd69547528 (patch) | |
tree | ddbec440a9e15fa793f9e3fbb1f70375256cd8ea /pam | |
parent | affffaf134f52dc01fbdb66b81172d983fbf74b2 (diff) |
pam: Better debug arguments support
Support debug=[on|off|true|false|1|0] as an option in addition to
"debug".
Diffstat (limited to 'pam')
-rw-r--r-- | pam/pam_fprintd.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pam/pam_fprintd.c b/pam/pam_fprintd.c index 20e7975..2b3bf0b 100644 --- a/pam/pam_fprintd.c +++ b/pam/pam_fprintd.c @@ -46,6 +46,7 @@ #define DEFAULT_MAX_TRIES 3 #define DEFAULT_TIMEOUT 30 +#define DEBUG_MATCH "debug=" #define MAX_TRIES_MATCH "max-tries=" #define TIMEOUT_MATCH "timeout=" @@ -623,6 +624,23 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, if (str_equal (argv[i], "debug")) { pam_syslog (pamh, LOG_DEBUG, "debug on"); debug = true; + } else if (str_has_prefix (argv[i], DEBUG_MATCH)) { + pam_syslog (pamh, LOG_DEBUG, "debug on"); + const char *value; + + value = argv[i] + strlen (DEBUG_MATCH); + if (str_equal (value, "on") || + str_equal (value, "true") || + str_equal (value, "1")) { + pam_syslog (pamh, LOG_DEBUG, "debug on"); + debug = true; + } else if (str_equal (value, "off") || + str_equal (value, "false") || + str_equal (value, "0")) { + debug = false; + } else { + pam_syslog (pamh, LOG_DEBUG, "invalid debug value '%s', disabling", value); + } } else if (str_has_prefix (argv[i], MAX_TRIES_MATCH) && strlen(argv[i]) == strlen (MAX_TRIES_MATCH) + 1) { max_tries = atoi (argv[i] + strlen (MAX_TRIES_MATCH)); if (max_tries < 1) |