diff options
author | Tobias Stoeckmann <tobias@stoeckmann.org> | 2023-12-12 09:40:20 +0100 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2023-12-31 08:00:00 +0000 |
commit | 3c61d2f6f9843dc54c13a3c6b023563c041feaa4 (patch) | |
tree | 4108df445353bb324b6359b244789d6888bd20cd /libpam/pam_handlers.c | |
parent | c1432a2d057a4006bf2258c0e166a61c8e1f141f (diff) | |
download | pam-3c61d2f6f9843dc54c13a3c6b023563c041feaa4.tar.gz pam-3c61d2f6f9843dc54c13a3c6b023563c041feaa4.tar.bz2 pam-3c61d2f6f9843dc54c13a3c6b023563c041feaa4.zip |
libpam: support very long strings in _pam_mkargv
This support has to be added before arbitrarily long lines are allowed
in configuration files.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Diffstat (limited to 'libpam/pam_handlers.c')
-rw-r--r-- | libpam/pam_handlers.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libpam/pam_handlers.c b/libpam/pam_handlers.c index 2030dbb8..aaf194fc 100644 --- a/libpam/pam_handlers.c +++ b/libpam/pam_handlers.c @@ -32,7 +32,7 @@ static void _pam_free_handlers_aux(struct handler **hp); static int _pam_add_handler(pam_handle_t *pamh , int must_fail, int other, int stack_level, int type , int *actions, const char *mod_path - , int argc, char **argv, int argvlen); + , int argc, char **argv, size_t argvlen); /* Values for module type */ @@ -77,7 +77,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f int handler_type = PAM_HT_MODULE; /* regular handler from a module */ int argc; char **argv; - int argvlen; + size_t argvlen; D(("LINE: %s", buf)); if (known_service != NULL) { @@ -235,7 +235,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f if (nexttok != NULL) { D(("list: %s",nexttok)); argvlen = _pam_mkargv(nexttok, &argv, &argc); - D(("argvlen = %d",argvlen)); + D(("argvlen = %zu",argvlen)); if (argvlen == 0) { /* memory allocation failed */ D(("failed to allocate argument vector")); @@ -247,7 +247,8 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f } } else { /* there are no arguments so fix by hand */ D(("empty argument list")); - argvlen = argc = 0; + argvlen = 0; + argc = 0; argv = NULL; } @@ -788,7 +789,7 @@ _pam_load_module(pam_handle_t *pamh, const char *mod_path, int handler_type) int _pam_add_handler(pam_handle_t *pamh , int handler_type, int other, int stack_level, int type , int *actions, const char *mod_path - , int argc, char **argv, int argvlen) + , int argc, char **argv, size_t argvlen) { struct loaded_module *mod = NULL; struct handler **handler_p; |