From: Ondřej Surý Date: Wed, 20 Sep 2023 15:23:28 +0000 (+0200) Subject: Explicitly cast chars to unsigned chars for functions X-Git-Tag: v9.19.18~71^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29caa6d1f0f32002245abfa838a5eb00dd7ed4e1;p=thirdparty%2Fbind9.git Explicitly cast chars to unsigned chars for functions Apply the semantic patch to catch all the places where we pass 'char' to the family of functions (isalpha() and friends, toupper(), tolower()). --- diff --git a/bin/tests/system/rpz/testlib/dummylib.c b/bin/tests/system/rpz/testlib/dummylib.c index d9ebdd306d5..71e3de6c1c5 100644 --- a/bin/tests/system/rpz/testlib/dummylib.c +++ b/bin/tests/system/rpz/testlib/dummylib.c @@ -535,7 +535,7 @@ get_cstr_zones(const char *cstr, trpz_rsp_t *trsp, size_t *pnzones) { while (tptr != NULL && *tptr != '\0') { tok = strsep(&tptr, ";\n"); - while (isspace(*tok)) { + while (isspace((unsigned char)*tok)) { tok++; } @@ -547,7 +547,7 @@ get_cstr_zones(const char *cstr, trpz_rsp_t *trsp, size_t *pnzones) { tok += 5; - while (isspace(*tok)) { + while (isspace((unsigned char)*tok)) { tok++; } @@ -570,7 +570,8 @@ get_cstr_zones(const char *cstr, trpz_rsp_t *trsp, size_t *pnzones) { qend = tok; } - while (*qend != '\0' && !isspace(*qend)) { + while (*qend != '\0' && !isspace((unsigned char)*qend)) + { qend++; } diff --git a/bin/tests/system/rpz/testlib/test-data.c b/bin/tests/system/rpz/testlib/test-data.c index d48e216b297..3ffbce28fe1 100644 --- a/bin/tests/system/rpz/testlib/test-data.c +++ b/bin/tests/system/rpz/testlib/test-data.c @@ -1147,7 +1147,7 @@ sanity_check_data_file(const char *fname, char **errp) { continue; } - while (*lptr && !isspace(*lptr)) { + while (*lptr && !isspace((unsigned char)*lptr)) { lptr++; } @@ -1171,7 +1171,7 @@ sanity_check_data_file(const char *fname, char **errp) { goto out; } - while (isspace(*lptr)) { + while (isspace((unsigned char)*lptr)) { lptr++; } @@ -1280,7 +1280,7 @@ load_all_updates(const char *fname, trpz_result_t **presults, size_t *pnresults, continue; } - while (*lptr && !isspace(*lptr)) { + while (*lptr && !isspace((unsigned char)*lptr)) { lptr++; } @@ -1343,7 +1343,7 @@ load_all_updates(const char *fname, trpz_result_t **presults, size_t *pnresults, } /* Everything here is an update */ - while (isspace(*lptr)) { + while (isspace((unsigned char)*lptr)) { lptr++; } @@ -1421,7 +1421,7 @@ wdns_str_to_name(const char *str, uint8_t **pbuf, bool downcase) { } *data++ = c; res++; - } else if (c == '\\' && !isdigit(*p)) { + } else if (c == '\\' && !isdigit((unsigned char)*p)) { /* an escaped character */ if (slen <= 0) { goto out; @@ -1441,7 +1441,9 @@ wdns_str_to_name(const char *str, uint8_t **pbuf, bool downcase) { d[2] = *p++; d[3] = '\0'; slen -= 3; - if (!isdigit(d[0]) || !isdigit(d[1]) || !isdigit(d[2])) + if (!isdigit((unsigned char)d[0]) || + !isdigit((unsigned char)d[1]) || + !isdigit((unsigned char)d[2])) { goto out; } diff --git a/contrib/dlz/modules/common/dlz_dbi.c b/contrib/dlz/modules/common/dlz_dbi.c index 88ff6328f40..d8e1909c443 100644 --- a/contrib/dlz/modules/common/dlz_dbi.c +++ b/contrib/dlz/modules/common/dlz_dbi.c @@ -474,7 +474,7 @@ get_parameter_value(const char *input, const char *key) { for (i = 0; i < 255; i++) { value[i] = keystart[keylen + i]; - if (isspace(value[i]) || value[i] == '\0') { + if (isspace((unsigned char)value[i]) || value[i] == '\0') { value[i] = '\0'; break; } diff --git a/lib/isc/httpd.c b/lib/isc/httpd.c index 6ce2ca979c9..57cc0fd943c 100644 --- a/lib/isc/httpd.c +++ b/lib/isc/httpd.c @@ -333,8 +333,10 @@ value_match(const struct phr_header *header, const char *match) { limit = header->value_len - match_len + 1; for (size_t i = 0; i < limit; i++) { - if (isspace(header->value[i])) { - while (i < limit && isspace(header->value[i])) { + if (isspace((unsigned char)header->value[i])) { + while (i < limit && + isspace((unsigned char)header->value[i])) + { i++; } continue;