diff options
author | Andy Polyakov <appro@openssl.org> | 2012-01-12 16:28:03 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2012-01-12 16:28:03 +0000 |
commit | 9b2a29660bc3b9b7f2ee8df52f7d7a46e20247dc (patch) | |
tree | a283ea72cfe0109179b5cc52ade6e8546c18a01b | |
parent | b7b4a9fa5738bdc6a16a1702f48274b58bf2e7b4 (diff) |
Sanitize usage of <ctype.h> functions. It's important that characters
are passed zero-extended, not sign-extended [from HEAD].
PR: 2682
-rw-r--r-- | apps/ca.c | 2 | ||||
-rw-r--r-- | apps/s_client.c | 2 | ||||
-rw-r--r-- | apps/s_server.c | 2 | ||||
-rw-r--r-- | crypto/asn1/asn_mime.c | 6 | ||||
-rw-r--r-- | engines/ccgost/gost_pmeth.c | 12 |
5 files changed, 12 insertions, 12 deletions
@@ -2560,7 +2560,7 @@ static int get_certificate_status(const char *serial, CA_DB *db) /* Make it Upper Case */ for (i=0; row[DB_serial][i] != '\0'; i++) - row[DB_serial][i] = toupper(row[DB_serial][i]); + row[DB_serial][i] = toupper((unsigned char)row[DB_serial][i]); ok=1; diff --git a/apps/s_client.c b/apps/s_client.c index b0702ce6fe..22e6762838 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -763,7 +763,7 @@ int MAIN(int argc, char **argv) psk_key=*(++argv); for (j = 0; j < strlen(psk_key); j++) { - if (isxdigit((int)psk_key[j])) + if (isxdigit((unsigned char)psk_key[j])) continue; BIO_printf(bio_err,"Not a hex number '%s'\n",*argv); goto bad; diff --git a/apps/s_server.c b/apps/s_server.c index 950ab67610..dbb35013de 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -1204,7 +1204,7 @@ int MAIN(int argc, char *argv[]) psk_key=*(++argv); for (i=0; i<strlen(psk_key); i++) { - if (isxdigit((int)psk_key[i])) + if (isxdigit((unsigned char)psk_key[i])) continue; BIO_printf(bio_err,"Not a hex number '%s'\n",*argv); goto bad; diff --git a/crypto/asn1/asn_mime.c b/crypto/asn1/asn_mime.c index c1d1b12291..bbc4952918 100644 --- a/crypto/asn1/asn_mime.c +++ b/crypto/asn1/asn_mime.c @@ -801,7 +801,7 @@ static MIME_HEADER *mime_hdr_new(char *name, char *value) if(name) { if(!(tmpname = BUF_strdup(name))) return NULL; for(p = tmpname ; *p; p++) { - c = *p; + c = (unsigned char)*p; if(isupper(c)) { c = tolower(c); *p = c; @@ -811,7 +811,7 @@ static MIME_HEADER *mime_hdr_new(char *name, char *value) if(value) { if(!(tmpval = BUF_strdup(value))) return NULL; for(p = tmpval ; *p; p++) { - c = *p; + c = (unsigned char)*p; if(isupper(c)) { c = tolower(c); *p = c; @@ -835,7 +835,7 @@ static int mime_hdr_addparam(MIME_HEADER *mhdr, char *name, char *value) tmpname = BUF_strdup(name); if(!tmpname) return 0; for(p = tmpname ; *p; p++) { - c = *p; + c = (unsigned char)*p; if(isupper(c)) { c = tolower(c); *p = c; diff --git a/engines/ccgost/gost_pmeth.c b/engines/ccgost/gost_pmeth.c index caaea99d36..4a05853e55 100644 --- a/engines/ccgost/gost_pmeth.c +++ b/engines/ccgost/gost_pmeth.c @@ -123,7 +123,7 @@ static int pkey_gost_ctrl94_str(EVP_PKEY_CTX *ctx, } if (strlen(value) == 1) { - switch(toupper(value[0])) + switch(toupper((unsigned char)value[0])) { case 'A': param_nid = NID_id_GostR3410_94_CryptoPro_A_ParamSet; @@ -142,9 +142,9 @@ static int pkey_gost_ctrl94_str(EVP_PKEY_CTX *ctx, break; } } - else if ((strlen(value) == 2) && (toupper(value[0]) == 'X')) + else if ((strlen(value) == 2) && (toupper((unsigned char)value[0]) == 'X')) { - switch (toupper(value[1])) + switch (toupper((unsigned char)value[1])) { case 'A': param_nid = NID_id_GostR3410_94_CryptoPro_XchA_ParamSet; @@ -198,7 +198,7 @@ static int pkey_gost_ctrl01_str(EVP_PKEY_CTX *ctx, } if (strlen(value) == 1) { - switch(toupper(value[0])) + switch(toupper((unsigned char)value[0])) { case 'A': param_nid = NID_id_GostR3410_2001_CryptoPro_A_ParamSet; @@ -217,9 +217,9 @@ static int pkey_gost_ctrl01_str(EVP_PKEY_CTX *ctx, break; } } - else if ((strlen(value) == 2) && (toupper(value[0]) == 'X')) + else if ((strlen(value) == 2) && (toupper((unsigned char)value[0]) == 'X')) { - switch (toupper(value[1])) + switch (toupper((unsigned char)value[1])) { case 'A': param_nid = NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet; |