Fix: tap array subscript has type char warning
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 10 Apr 2020 12:30:54 +0000 (08:30 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 10 Apr 2020 12:30:54 +0000 (08:30 -0400)
On architectures where "char" is signed, it should be cast to unsigned
char before being passed as parameter to isdigit or isspace. Based on
their man page:

       These  functions  check  whether  c,  which  must  have the value of an
       unsigned char or EOF, falls into a certain character class according to
       the  specified  locale.

Passing a signed char as parameter is invalid if the values fall into
the negative range of the signed char.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
tests/utils/tap.c

index 573ae33..3e384d6 100644 (file)
@@ -94,7 +94,8 @@ _gen_result(int ok, const char *func, char *file, unsigned int line,
                if(local_test_name) {
                        name_is_digits = 1;
                        for(c = local_test_name; *c != '\0'; c++) {
-                               if(!isdigit(*c) && !isspace(*c)) {
+                               if(!isdigit((unsigned char)*c) &&
+                                               !isspace((unsigned char)*c)) {
                                        name_is_digits = 0;
                                        break;
                                }
This page took 0.031247 seconds and 4 git commands to generate.