openssl/crypto/conf
Dr. Matthias St. Pierre a9b7a06ed8 Fix false positives of IS_*() macros for 8-bit ASCII characters
Fixes #5778, #5840

The various IS_*() macros did not work correctly for 8-bit ASCII
characters with the high bit set, because the CVT(a) preprocessor
macro and'ed the given ASCII value with 0x7F, effectively folding
the high value range 128-255 over the low value range 0-127.
As a consequence, some of the IS_*() erroneously returned TRUE.

This commit fixes the issue by adding range checks instead of
cutting off high order bits using a mask. In order avoid multiple
evaluation of macro arguments, most of the implementation was moved
from macros into a static function is_keytype().

Thanks to Румен Петров for reporting and analyzing the UTF-8 parsing
issue #5840.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5903)
2018-04-08 20:12:01 +02:00
..
build.info Move the loading of the ssl_conf module to libcrypto 2018-04-05 15:30:12 +01:00
conf_api.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
conf_def.c Fix false positives of IS_*() macros for 8-bit ASCII characters 2018-04-08 20:12:01 +02:00
conf_def.h Fix false positives of IS_*() macros for 8-bit ASCII characters 2018-04-08 20:12:01 +02:00
conf_err.c Move the loading of the ssl_conf module to libcrypto 2018-04-05 15:30:12 +01:00
conf_lcl.h Move the loading of the ssl_conf module to libcrypto 2018-04-05 15:30:12 +01:00
conf_lib.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
conf_mall.c Move the loading of the ssl_conf module to libcrypto 2018-04-05 15:30:12 +01:00
conf_mod.c Don't use getenv for critical functions when run as setuid/setgid 2018-04-04 14:45:49 +02:00
conf_sap.c Resolve warnings in VC-WIN32 build, which allows to add /WX. 2017-11-13 10:58:57 +01:00
conf_ssl.c Move the loading of the ssl_conf module to libcrypto 2018-04-05 15:30:12 +01:00
keysets.pl Fix false positives of IS_*() macros for 8-bit ASCII characters 2018-04-08 20:12:01 +02:00