diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/x509/x509_addr.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/src/lib/libcrypto/x509/x509_addr.c b/src/lib/libcrypto/x509/x509_addr.c index 2a102e13ac..a9e10bff3b 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.73 2022/01/05 17:53:42 tb Exp $ */ | 1 | /* $OpenBSD: x509_addr.c,v 1.74 2022/01/05 17:55:33 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"). | 
| @@ -1657,8 +1657,8 @@ static int | |||
| 1657 | addr_contains(IPAddressOrRanges *parent, IPAddressOrRanges *child, int length) | 1657 | addr_contains(IPAddressOrRanges *parent, IPAddressOrRanges *child, int length) | 
| 1658 | { | 1658 | { | 
| 1659 | IPAddressOrRange *child_aor, *parent_aor; | 1659 | IPAddressOrRange *child_aor, *parent_aor; | 
| 1660 | unsigned char p_min[ADDR_RAW_BUF_LEN], p_max[ADDR_RAW_BUF_LEN]; | 1660 | uint8_t parent_min[ADDR_RAW_BUF_LEN], parent_max[ADDR_RAW_BUF_LEN]; | 
| 1661 | unsigned char c_min[ADDR_RAW_BUF_LEN], c_max[ADDR_RAW_BUF_LEN]; | 1661 | uint8_t child_min[ADDR_RAW_BUF_LEN], child_max[ADDR_RAW_BUF_LEN]; | 
| 1662 | int p, c; | 1662 | int p, c; | 
| 1663 | 1663 | ||
| 1664 | if (child == NULL || parent == child) | 1664 | if (child == NULL || parent == child) | 
| @@ -1670,7 +1670,7 @@ addr_contains(IPAddressOrRanges *parent, IPAddressOrRanges *child, int length) | |||
| 1670 | for (c = 0; c < sk_IPAddressOrRange_num(child); c++) { | 1670 | for (c = 0; c < sk_IPAddressOrRange_num(child); c++) { | 
| 1671 | child_aor = sk_IPAddressOrRange_value(child, c); | 1671 | child_aor = sk_IPAddressOrRange_value(child, c); | 
| 1672 | 1672 | ||
| 1673 | if (!extract_min_max(child_aor, c_min, c_max, length)) | 1673 | if (!extract_min_max(child_aor, child_min, child_max, length)) | 
| 1674 | return 0; | 1674 | return 0; | 
| 1675 | 1675 | ||
| 1676 | for (;; p++) { | 1676 | for (;; p++) { | 
| @@ -1679,12 +1679,13 @@ addr_contains(IPAddressOrRanges *parent, IPAddressOrRanges *child, int length) | |||
| 1679 | 1679 | ||
| 1680 | parent_aor = sk_IPAddressOrRange_value(parent, p); | 1680 | parent_aor = sk_IPAddressOrRange_value(parent, p); | 
| 1681 | 1681 | ||
| 1682 | if (!extract_min_max(parent_aor, p_min, p_max, length)) | 1682 | if (!extract_min_max(parent_aor, parent_min, parent_max, | 
| 1683 | length)) | ||
| 1683 | return 0; | 1684 | return 0; | 
| 1684 | 1685 | ||
| 1685 | if (memcmp(p_max, c_max, length) < 0) | 1686 | if (memcmp(parent_max, child_max, length) < 0) | 
| 1686 | continue; | 1687 | continue; | 
| 1687 | if (memcmp(p_min, c_min, length) > 0) | 1688 | if (memcmp(parent_min, child_min, length) > 0) | 
| 1688 | return 0; | 1689 | return 0; | 
| 1689 | break; | 1690 | break; | 
| 1690 | } | 1691 | } | 
