aboutsummaryrefslogtreecommitdiff
path: root/libpam/pam_handlers.c
diff options
context:
space:
mode:
authorTobias Stoeckmann <tobias@stoeckmann.org>2023-12-12 09:40:20 +0100
committerDmitry V. Levin <ldv@strace.io>2023-12-31 08:00:00 +0000
commit3c61d2f6f9843dc54c13a3c6b023563c041feaa4 (patch)
tree4108df445353bb324b6359b244789d6888bd20cd /libpam/pam_handlers.c
parentc1432a2d057a4006bf2258c0e166a61c8e1f141f (diff)
downloadpam-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.c11
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;