diff options
author | Daiki Ueno <dueno@redhat.com> | 2021-07-14 11:15:34 +0200 |
---|---|---|
committer | Daiki Ueno <dueno@redhat.com> | 2021-07-14 16:20:30 +0200 |
commit | 657f3d030fce41600d3b9f8daf4cb98c8dc4ec3e (patch) | |
tree | 3f37f452eb825ce76613c992bdc32daa481f9041 /fuzz/cms.c | |
parent | b46a26b3ade22be5ba4c39bf89c66f17d7900944 (diff) |
apps: Use the first detected address family if IPv6 is not available
This is a follow up of 15729bef385211bc2a0497e2d53a45c45d677d2c. Even
when the host does not support IPv6 at all, BIO_lookup_ex may now
return IN6ADDR_ANY in addition to INADDR_ANY, as the second element of
the ai_next field.
After eee8a40aa5e06841eed6fa8eb4f6109238d59aea, the do_server function
prefers the IPv6 address and fails on the BIO_socket call. This adds
a fallback code to retry with the IPv4 address returned as the first
element to avoid the error.
The failure had been partially avoided in the previous code with
AI_ADDRCONFIG, because getaddrinfo returns only IPv4 address if no
IPv6 address is associated with external interface. However, it would
be still a problem if the external interface has an IPv6 address
assigned, while the loopback interface doesn't.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16078)
Diffstat (limited to 'fuzz/cms.c')
0 files changed, 0 insertions, 0 deletions