diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/x509/x509_addr.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/lib/libcrypto/x509/x509_addr.c b/src/lib/libcrypto/x509/x509_addr.c index 0f1a9a118f..571ca728d4 100644 --- a/src/lib/libcrypto/x509/x509_addr.c +++ b/src/lib/libcrypto/x509/x509_addr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x509_addr.c,v 1.38 2021/12/28 17:45:41 tb Exp $ */ | 1 | /* $OpenBSD: x509_addr.c,v 1.39 2021/12/28 19:56:45 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Contributed to the OpenSSL Project by the American Registry for | 3 | * Contributed to the OpenSSL Project by the American Registry for |
| 4 | * Internet Numbers ("ARIN"). | 4 | * Internet Numbers ("ARIN"). |
| @@ -956,14 +956,23 @@ int | |||
| 956 | X509v3_addr_add_prefix(IPAddrBlocks *addr, const unsigned afi, | 956 | X509v3_addr_add_prefix(IPAddrBlocks *addr, const unsigned afi, |
| 957 | const unsigned *safi, unsigned char *a, const int prefixlen) | 957 | const unsigned *safi, unsigned char *a, const int prefixlen) |
| 958 | { | 958 | { |
| 959 | IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi); | 959 | IPAddressOrRanges *aors; |
| 960 | IPAddressOrRange *aor; | 960 | IPAddressOrRange *aor; |
| 961 | if (aors == NULL || !make_addressPrefix(&aor, a, prefixlen)) | 961 | |
| 962 | /* XXX - check prefixlen */ | ||
| 963 | |||
| 964 | if ((aors = make_prefix_or_range(addr, afi, safi)) == NULL) | ||
| 962 | return 0; | 965 | return 0; |
| 963 | if (sk_IPAddressOrRange_push(aors, aor)) | 966 | |
| 964 | return 1; | 967 | if (!make_addressPrefix(&aor, a, prefixlen)) |
| 965 | IPAddressOrRange_free(aor); | 968 | return 0; |
| 966 | return 0; | 969 | |
| 970 | if (sk_IPAddressOrRange_push(aors, aor) <= 0) { | ||
| 971 | IPAddressOrRange_free(aor); | ||
| 972 | return 0; | ||
| 973 | } | ||
| 974 | |||
| 975 | return 1; | ||
| 967 | } | 976 | } |
| 968 | 977 | ||
| 969 | /* | 978 | /* |
