Fix two bugs in the legacy verifier
authortb <tb@openbsd.org>
Thu, 25 Feb 2021 17:29:22 +0000 (17:29 +0000)
committertb <tb@openbsd.org>
Thu, 25 Feb 2021 17:29:22 +0000 (17:29 +0000)
commit77da1e57a26be2f7238e94b154addfc65dcc6445
tree7f1ddfde6a7e247f93277d766e962286c2ba322a
parent49ebc234d43c83d692e12baa2a018226e3f6cdd4
Fix two bugs in the legacy verifier

To integrate the new X.509 verifier, X509_verify_cert() was refactored.
The code building chains in the legacy verifier was split into a
separate function. The first bug is that its return value was treated
as a Boolean although it wasn't. Second, the return alone is not enough
to decide whether to carry on the validation or not.

Slightly rearrange things to restore the behavior of the legacy verifier
prior to this refactoring.

Issue found and test case provided by Anton Borowka and jan.

ok jan jsing
lib/libcrypto/x509/x509_vfy.c