From: Pauli Date: Tue, 22 Aug 2017 22:10:31 +0000 (+1000) Subject: Check range of test values using isascii before diving into the full X-Git-Tag: OpenSSL_1_1_1-pre1~773 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=da9b249fd994124e954d871ff220cc2c0ddf9e6a;p=oweals%2Fopenssl.git Check range of test values using isascii before diving into the full range of ctype functions. Revert "Don't try to compare the ctype functions on values > 127" This reverts commit 6ac589081b53a62bff5f0abe62c1c109c419c7a0. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/4225) --- diff --git a/test/ctype_internal_test.c b/test/ctype_internal_test.c index 04ab14d73f..ce3cbfee0a 100644 --- a/test/ctype_internal_test.c +++ b/test/ctype_internal_test.c @@ -27,9 +27,14 @@ static int isblank(int c) static int test_ctype_chars(int n) { - return TEST_int_eq(isalnum(n) != 0, ossl_isalnum(n) != 0) - && TEST_int_eq(isalpha(n) != 0, ossl_isalpha(n) != 0) - && TEST_int_eq(isascii(n) != 0, ossl_isascii(n) != 0) + if (!TEST_int_eq(isascii((unsigned char)n) != 0, ossl_isascii(n) != 0)) + return 0; + + if (!ossl_isascii(n)) + return 1; + + return TEST_int_eq(isalpha(n) != 0, ossl_isalpha(n) != 0) + && TEST_int_eq(isalnum(n) != 0, ossl_isalnum(n) != 0) && TEST_int_eq(isblank(n) != 0, ossl_isblank(n) != 0) && TEST_int_eq(iscntrl(n) != 0, ossl_iscntrl(n) != 0) && TEST_int_eq(isdigit(n) != 0, ossl_isdigit(n) != 0) @@ -75,7 +80,7 @@ static int test_ctype_eof(void) int setup_tests(void) { - ADD_ALL_TESTS(test_ctype_chars, 128); + ADD_ALL_TESTS(test_ctype_chars, 256); ADD_ALL_TESTS(test_ctype_toupper, OSSL_NELEM(case_change)); ADD_ALL_TESTS(test_ctype_tolower, OSSL_NELEM(case_change)); ADD_TEST(test_ctype_eof);