mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 01:12:07 -04:00
Merge branch '4327-minor-warning-about-ctype-h-function' into 'main'
Add semantic patch to explicitly cast chars to unsigned for ctype.h Closes #4327 See merge request isc-projects/bind9!8325
This commit is contained in:
commit
baacd2af44
6 changed files with 126 additions and 12 deletions
4
CHANGES
4
CHANGES
|
|
@ -1,3 +1,7 @@
|
|||
6254. [cleanup] Add semantic patch to do an explicit cast from char
|
||||
to unsigned char in ctype.h class of functions.
|
||||
[GL #4327]
|
||||
|
||||
6253. [cleanup] Remove the support for control channel over Unix
|
||||
Domain Sockets. [GL #4311]
|
||||
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
105
cocci/ctype.spatch
Normal file
105
cocci/ctype.spatch
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isalnum(T)
|
||||
+ isalnum((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isalpha(T)
|
||||
+ isalpha((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- iscntrl(T)
|
||||
+ iscntrl((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isdigit(T)
|
||||
+ isdigit((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isgraph(T)
|
||||
+ isgraph((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- islower(T)
|
||||
+ islower((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isprint(T)
|
||||
+ isprint((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- ispunct(T)
|
||||
+ ispunct((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isspace(T)
|
||||
+ isspace((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isupper(T)
|
||||
+ isupper((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isxdigit(T)
|
||||
+ isxdigit((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isascii(T)
|
||||
+ isascii((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- isblank(T)
|
||||
+ isblank((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- tolower(T)
|
||||
+ tolower((unsigned char)T)
|
||||
|
||||
@@
|
||||
char T;
|
||||
@@
|
||||
|
||||
- toupper(T)
|
||||
+ toupper((unsigned char)T)
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue