summaryrefslogtreecommitdiffstats
path: root/apps/s_client.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-02-14 13:02:15 +0100
committerRichard Levitte <levitte@openssl.org>2016-02-14 19:31:55 +0100
commit18295f0c2db084fe00d935d8506d6e964f652d21 (patch)
tree81e661fc1e2052c698b5daee8aae711e574bc0e4 /apps/s_client.c
parentef8ca6bd544e4baea67f9a193ae896b8629944d0 (diff)
Make sure to use unsigned char for is*() functions
On some platforms, the implementation is such that a signed char triggers a warning when used with is*() functions. On others, the behavior is outright buggy when presented with a char that happens to get promoted to a negative integer. The safest thing is to cast the char that's used to an unsigned char. Reviewed-by: Andy Polyakov <appro@openssl.org>
Diffstat (limited to 'apps/s_client.c')
-rw-r--r--apps/s_client.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/apps/s_client.c b/apps/s_client.c
index c122c1a613..55d1283b1c 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -509,9 +509,9 @@ static ossl_ssize_t hexdecode(const char **inptr, void *result)
for (byte = 0; *in; ++in) {
char c;
- if (isspace(*in))
+ if (isspace(_UC(*in)))
continue;
- c = tolower(*in);
+ c = tolower(_UC(*in));
if ('0' <= c && c <= '9') {
byte |= c - '0';
} else if ('a' <= c && c <= 'f') {
@@ -553,11 +553,11 @@ static ossl_ssize_t checked_uint8(const char **inptr, void *out)
e = restore_errno();
if (((v == LONG_MIN || v == LONG_MAX) && e == ERANGE) ||
- endp == in || !isspace(*endp) ||
+ endp == in || !isspace(_UC(*endp)) ||
v != (*result = (uint8_t) v)) {
return -1;
}
- for (in = endp; isspace(*in); ++in)
+ for (in = endp; isspace(_UC(*in)); ++in)
continue;
*inptr = in;
@@ -1141,7 +1141,7 @@ int s_client_main(int argc, char **argv)
break;
case OPT_PSK:
for (p = psk_key = opt_arg(); *p; p++) {
- if (isxdigit(*p))
+ if (isxdigit(_UC(*p)))
continue;
BIO_printf(bio_err, "Not a hex number '%s'\n", psk_key);
goto end;