From 43abfff43537092e20bc129f8208d082e73aff1a Mon Sep 17 00:00:00 2001 From: Christian Göttsche Date: Mon, 7 Aug 2023 12:46:40 +0200 Subject: modules: cast to unsigned char for character handling function Character handling functions, like isspace(3), expect a value representable as unsigned char or equal to EOF. Otherwise the behavior is undefined. See https://wiki.sei.cmu.edu/confluence/display/c/STR37-C.+Arguments+to+character-handling+functions+must+be+representable+as+an+unsigned+char --- modules/pam_namespace/argv_parse.c | 4 ++-- modules/pam_namespace/pam_namespace.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'modules/pam_namespace') diff --git a/modules/pam_namespace/argv_parse.c b/modules/pam_namespace/argv_parse.c index 40510542..7d418e05 100644 --- a/modules/pam_namespace/argv_parse.c +++ b/modules/pam_namespace/argv_parse.c @@ -56,7 +56,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv) outcp = buf; for (cp = in_buf; (ch = *cp); cp++) { if (state == STATE_WHITESPACE) { - if (isspace((int) ch)) + if (isspace((unsigned char)ch)) continue; /* Not whitespace, so start a new token */ state = STATE_TOKEN; @@ -81,7 +81,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv) continue; } /* Must be processing characters in a word */ - if (isspace((int) ch)) { + if (isspace((unsigned char)ch)) { /* * Terminate the current word and start * looking for the beginning of the next word. diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c index f34ce934..48690b8d 100644 --- a/modules/pam_namespace/pam_namespace.c +++ b/modules/pam_namespace/pam_namespace.c @@ -485,7 +485,7 @@ static int process_line(char *line, const char *home, const char *rhome, /* * skip the leading white space */ - while (*line && isspace(*line)) + while (*line && isspace((unsigned char)*line)) line++; /* -- cgit v1.2.3