KNF
authorjob <job@openbsd.org>
Tue, 7 Sep 2021 10:24:51 +0000 (10:24 +0000)
committerjob <job@openbsd.org>
Tue, 7 Sep 2021 10:24:51 +0000 (10:24 +0000)
OK tb@ jsing@ beck@

lib/libcrypto/x509/x509_addr.c
lib/libcrypto/x509/x509_asid.c

index d23981b..1c13e36 100644 (file)
@@ -191,7 +191,7 @@ d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
 }
 
 int
-i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char ** out)
+i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out)
 {
        return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(IPAddressOrRange_it)));
 }
@@ -203,7 +203,8 @@ IPAddressOrRange_new(void)
 }
 
 void
-IPAddressOrRange_free(IPAddressOrRange *a) {
+IPAddressOrRange_free(IPAddressOrRange *a)
+{
        ASN1_item_free((ASN1_VALUE *)a, (&(IPAddressOrRange_it)));
 }
 
@@ -224,7 +225,6 @@ IPAddressChoice *
 IPAddressChoice_new(void)
 {
        return (IPAddressChoice *)ASN1_item_new((&(IPAddressChoice_it)));
-
 }
 
 void
@@ -266,53 +266,55 @@ IPAddressFamily_free(IPAddressFamily *a)
 /*
  * What's the address length associated with this AFI?
  */
-static int length_from_afi(const unsigned afi)
+static int
+length_from_afi(const unsigned afi)
 {
-    switch (afi) {
-    case IANA_AFI_IPV4:
-        return 4;
-    case IANA_AFI_IPV6:
-        return 16;
-    default:
-        return 0;
-    }
+       switch (afi) {
+       case IANA_AFI_IPV4:
+               return 4;
+       case IANA_AFI_IPV6:
+               return 16;
+       default:
+               return 0;
+       }
 }
 
 /*
  * Extract the AFI from an IPAddressFamily.
  */
-unsigned int X509v3_addr_get_afi(const IPAddressFamily *f)
+unsigned int
+X509v3_addr_get_afi(const IPAddressFamily *f)
 {
-    if (f == NULL
-            || f->addressFamily == NULL
-            || f->addressFamily->data == NULL
-            || f->addressFamily->length < 2)
-        return 0;
-    return (f->addressFamily->data[0] << 8) | f->addressFamily->data[1];
+       if (f == NULL ||
+           f->addressFamily == NULL ||
+           f->addressFamily->data == NULL ||
+           f->addressFamily->length < 2)
+               return 0;
+       return (f->addressFamily->data[0] << 8) | f->addressFamily->data[1];
 }
 
 /*
  * Expand the bitstring form of an address into a raw byte array.
  * At the moment this is coded for simplicity, not speed.
  */
-static int addr_expand(unsigned char *addr,
-                       const ASN1_BIT_STRING *bs,
-                       const int length, const unsigned char fill)
+static int
+addr_expand(unsigned char *addr, const ASN1_BIT_STRING *bs, const int length,
+    const unsigned char fill)
 {
-    if (bs->length < 0 || bs->length > length)
-        return 0;
-    if (bs->length > 0) {
-        memcpy(addr, bs->data, bs->length);
-        if ((bs->flags & 7) != 0) {
-            unsigned char mask = 0xFF >> (8 - (bs->flags & 7));
-            if (fill == 0)
-                addr[bs->length - 1] &= ~mask;
-            else
-                addr[bs->length - 1] |= mask;
-        }
-    }
-    memset(addr + bs->length, fill, length - bs->length);
-    return 1;
+       if (bs->length < 0 || bs->length > length)
+               return 0;
+       if (bs->length > 0) {
+               memcpy(addr, bs->data, bs->length);
+               if ((bs->flags & 7) != 0) {
+                       unsigned char mask = 0xFF >> (8 - (bs->flags & 7));
+                       if (fill == 0)
+                               addr[bs->length - 1] &= ~mask;
+                       else
+                               addr[bs->length - 1] |= mask;
+               }
+       }
+       memset(addr + bs->length, fill, length - bs->length);
+       return 1;
 }
 
 /*
@@ -323,143 +325,149 @@ static int addr_expand(unsigned char *addr,
 /*
  * i2r handler for one address bitstring.
  */
-static int i2r_address(BIO *out,
-                       const unsigned afi,
-                       const unsigned char fill, const ASN1_BIT_STRING *bs)
+static int
+i2r_address(BIO *out, const unsigned afi, const unsigned char fill,
+    const ASN1_BIT_STRING *bs)
 {
-    unsigned char addr[ADDR_RAW_BUF_LEN];
-    int i, n;
-
-    if (bs->length < 0)
-        return 0;
-    switch (afi) {
-    case IANA_AFI_IPV4:
-        if (!addr_expand(addr, bs, 4, fill))
-            return 0;
-        BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
-        break;
-    case IANA_AFI_IPV6:
-        if (!addr_expand(addr, bs, 16, fill))
-            return 0;
-        for (n = 16; n > 1 && addr[n - 1] == 0x00 && addr[n - 2] == 0x00;
-             n -= 2) ;
-        for (i = 0; i < n; i += 2)
-            BIO_printf(out, "%x%s", (addr[i] << 8) | addr[i + 1],
-                       (i < 14 ? ":" : ""));
-        if (i < 16)
-            BIO_puts(out, ":");
-        if (i == 0)
-            BIO_puts(out, ":");
-        break;
-    default:
-        for (i = 0; i < bs->length; i++)
-            BIO_printf(out, "%s%02x", (i > 0 ? ":" : ""), bs->data[i]);
-        BIO_printf(out, "[%d]", (int)(bs->flags & 7));
-        break;
-    }
-    return 1;
+       unsigned char addr[ADDR_RAW_BUF_LEN];
+       int i, n;
+
+       if (bs->length < 0)
+               return 0;
+       switch (afi) {
+       case IANA_AFI_IPV4:
+               if (!addr_expand(addr, bs, 4, fill))
+                       return 0;
+               BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2],
+                   addr[3]);
+               break;
+       case IANA_AFI_IPV6:
+               if (!addr_expand(addr, bs, 16, fill))
+                       return 0;
+               for (n = 16;
+                   n > 1 && addr[n - 1] == 0x00 && addr[n - 2] == 0x00; n -= 2)
+                       ;
+               for (i = 0; i < n; i += 2)
+                       BIO_printf(out, "%x%s", (addr[i] << 8) | addr[i + 1],
+                           (i < 14 ? ":" : ""));
+               if (i < 16)
+                       BIO_puts(out, ":");
+               if (i == 0)
+                       BIO_puts(out, ":");
+               break;
+       default:
+               for (i = 0; i < bs->length; i++)
+                       BIO_printf(out, "%s%02x", (i > 0 ? ":" : ""),
+                           bs->data[i]);
+               BIO_printf(out, "[%d]", (int)(bs->flags & 7));
+               break;
+       }
+       return 1;
 }
 
 /*
  * i2r handler for a sequence of addresses and ranges.
  */
-static int i2r_IPAddressOrRanges(BIO *out,
-                                 const int indent,
-                                 const IPAddressOrRanges *aors,
-                                 const unsigned afi)
+static int
+i2r_IPAddressOrRanges(BIO *out, const int indent,
+    const IPAddressOrRanges *aors, const unsigned afi)
 {
-    int i;
-    for (i = 0; i < sk_IPAddressOrRange_num(aors); i++) {
-        const IPAddressOrRange *aor = sk_IPAddressOrRange_value(aors, i);
-        BIO_printf(out, "%*s", indent, "");
-        switch (aor->type) {
-        case IPAddressOrRange_addressPrefix:
-            if (!i2r_address(out, afi, 0x00, aor->u.addressPrefix))
-                return 0;
-            BIO_printf(out, "/%d\n", addr_prefixlen(aor->u.addressPrefix));
-            continue;
-        case IPAddressOrRange_addressRange:
-            if (!i2r_address(out, afi, 0x00, aor->u.addressRange->min))
-                return 0;
-            BIO_puts(out, "-");
-            if (!i2r_address(out, afi, 0xFF, aor->u.addressRange->max))
-                return 0;
-            BIO_puts(out, "\n");
-            continue;
-        }
-    }
-    return 1;
+       int i;
+       for (i = 0; i < sk_IPAddressOrRange_num(aors); i++) {
+               const IPAddressOrRange *aor = sk_IPAddressOrRange_value(aors, i);
+               BIO_printf(out, "%*s", indent, "");
+               switch (aor->type) {
+               case IPAddressOrRange_addressPrefix:
+                       if (!i2r_address(out, afi, 0x00, aor->u.addressPrefix))
+                               return 0;
+                       BIO_printf(out, "/%d\n",
+                           addr_prefixlen(aor->u.addressPrefix));
+                       continue;
+               case IPAddressOrRange_addressRange:
+                       if (!i2r_address(out, afi, 0x00,
+                           aor->u.addressRange->min))
+                               return 0;
+                       BIO_puts(out, "-");
+                       if (!i2r_address(out, afi, 0xFF,
+                           aor->u.addressRange->max))
+                               return 0;
+                       BIO_puts(out, "\n");
+                       continue;
+               }
+       }
+       return 1;
 }
 
 /*
  * i2r handler for an IPAddrBlocks extension.
  */
-static int i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,
-                            void *ext, BIO *out, int indent)
+static int
+i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method, void *ext, BIO *out,
+    int indent)
 {
-    const IPAddrBlocks *addr = ext;
-    int i;
-    for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
-        IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
-        const unsigned int afi = X509v3_addr_get_afi(f);
-        switch (afi) {
-        case IANA_AFI_IPV4:
-            BIO_printf(out, "%*sIPv4", indent, "");
-            break;
-        case IANA_AFI_IPV6:
-            BIO_printf(out, "%*sIPv6", indent, "");
-            break;
-        default:
-            BIO_printf(out, "%*sUnknown AFI %u", indent, "", afi);
-            break;
-        }
-        if (f->addressFamily->length > 2) {
-            switch (f->addressFamily->data[2]) {
-            case 1:
-                BIO_puts(out, " (Unicast)");
-                break;
-            case 2:
-                BIO_puts(out, " (Multicast)");
-                break;
-            case 3:
-                BIO_puts(out, " (Unicast/Multicast)");
-                break;
-            case 4:
-                BIO_puts(out, " (MPLS)");
-                break;
-            case 64:
-                BIO_puts(out, " (Tunnel)");
-                break;
-            case 65:
-                BIO_puts(out, " (VPLS)");
-                break;
-            case 66:
-                BIO_puts(out, " (BGP MDT)");
-                break;
-            case 128:
-                BIO_puts(out, " (MPLS-labeled VPN)");
-                break;
-            default:
-                BIO_printf(out, " (Unknown SAFI %u)",
-                           (unsigned)f->addressFamily->data[2]);
-                break;
-            }
-        }
-        switch (f->ipAddressChoice->type) {
-        case IPAddressChoice_inherit:
-            BIO_puts(out, ": inherit\n");
-            break;
-        case IPAddressChoice_addressesOrRanges:
-            BIO_puts(out, ":\n");
-            if (!i2r_IPAddressOrRanges(out,
-                                       indent + 2,
-                                       f->ipAddressChoice->
-                                       u.addressesOrRanges, afi))
-                return 0;
-            break;
-        }
-    }
-    return 1;
+       const IPAddrBlocks *addr = ext;
+       int i;
+       for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+               IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
+               const unsigned int afi = X509v3_addr_get_afi(f);
+               switch (afi) {
+               case IANA_AFI_IPV4:
+                       BIO_printf(out, "%*sIPv4", indent, "");
+                       break;
+               case IANA_AFI_IPV6:
+                       BIO_printf(out, "%*sIPv6", indent, "");
+                       break;
+               default:
+                       BIO_printf(out, "%*sUnknown AFI %u", indent, "", afi);
+                       break;
+               }
+               if (f->addressFamily->length > 2) {
+                       switch (f->addressFamily->data[2]) {
+                       case 1:
+                               BIO_puts(out, " (Unicast)");
+                               break;
+                       case 2:
+                               BIO_puts(out, " (Multicast)");
+                               break;
+                       case 3:
+                               BIO_puts(out, " (Unicast/Multicast)");
+                               break;
+                       case 4:
+                               BIO_puts(out, " (MPLS)");
+                               break;
+                       case 64:
+                               BIO_puts(out, " (Tunnel)");
+                               break;
+                       case 65:
+                               BIO_puts(out, " (VPLS)");
+                               break;
+                       case 66:
+                               BIO_puts(out, " (BGP MDT)");
+                               break;
+                       case 128:
+                               BIO_puts(out, " (MPLS-labeled VPN)");
+                               break;
+                       default:
+                               BIO_printf(out, " (Unknown SAFI %u)",
+                                   (unsigned)f->addressFamily->data[2]);
+                               break;
+                       }
+               }
+               switch (f->ipAddressChoice->type) {
+               case IPAddressChoice_inherit:
+                       BIO_puts(out, ": inherit\n");
+                       break;
+               case IPAddressChoice_addressesOrRanges:
+                       BIO_puts(out, ":\n");
+                       if (!i2r_IPAddressOrRanges(out,
+                           indent + 2,
+                           f->ipAddressChoice->
+                           u.addressesOrRanges, afi))
+                               return 0;
+                       break;
+               }
+       }
+       return 1;
 }
 
 /*
@@ -472,145 +480,152 @@ static int i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,
  * function returns -1.  If this messes up your preferred sort order
  * for garbage input, tough noogies.
  */
-static int IPAddressOrRange_cmp(const IPAddressOrRange *a,
-                                const IPAddressOrRange *b, const int length)
+static int
+IPAddressOrRange_cmp(const IPAddressOrRange *a, const IPAddressOrRange *b,
+    const int length)
 {
-    unsigned char addr_a[ADDR_RAW_BUF_LEN], addr_b[ADDR_RAW_BUF_LEN];
-    int prefixlen_a = 0, prefixlen_b = 0;
-    int r;
-
-    switch (a->type) {
-    case IPAddressOrRange_addressPrefix:
-        if (!addr_expand(addr_a, a->u.addressPrefix, length, 0x00))
-            return -1;
-        prefixlen_a = addr_prefixlen(a->u.addressPrefix);
-        break;
-    case IPAddressOrRange_addressRange:
-        if (!addr_expand(addr_a, a->u.addressRange->min, length, 0x00))
-            return -1;
-        prefixlen_a = length * 8;
-        break;
-    }
-
-    switch (b->type) {
-    case IPAddressOrRange_addressPrefix:
-        if (!addr_expand(addr_b, b->u.addressPrefix, length, 0x00))
-            return -1;
-        prefixlen_b = addr_prefixlen(b->u.addressPrefix);
-        break;
-    case IPAddressOrRange_addressRange:
-        if (!addr_expand(addr_b, b->u.addressRange->min, length, 0x00))
-            return -1;
-        prefixlen_b = length * 8;
-        break;
-    }
-
-    if ((r = memcmp(addr_a, addr_b, length)) != 0)
-        return r;
-    else
-        return prefixlen_a - prefixlen_b;
+       unsigned char addr_a[ADDR_RAW_BUF_LEN], addr_b[ADDR_RAW_BUF_LEN];
+       int prefixlen_a = 0, prefixlen_b = 0;
+       int r;
+
+       switch (a->type) {
+       case IPAddressOrRange_addressPrefix:
+               if (!addr_expand(addr_a, a->u.addressPrefix, length, 0x00))
+                       return -1;
+               prefixlen_a = addr_prefixlen(a->u.addressPrefix);
+               break;
+       case IPAddressOrRange_addressRange:
+               if (!addr_expand(addr_a, a->u.addressRange->min, length, 0x00))
+                       return -1;
+               prefixlen_a = length * 8;
+               break;
+       }
+
+       switch (b->type) {
+       case IPAddressOrRange_addressPrefix:
+               if (!addr_expand(addr_b, b->u.addressPrefix, length, 0x00))
+                       return -1;
+               prefixlen_b = addr_prefixlen(b->u.addressPrefix);
+               break;
+       case IPAddressOrRange_addressRange:
+               if (!addr_expand(addr_b, b->u.addressRange->min, length, 0x00))
+                       return -1;
+               prefixlen_b = length * 8;
+               break;
+       }
+
+       if ((r = memcmp(addr_a, addr_b, length)) != 0)
+               return r;
+       else
+               return prefixlen_a - prefixlen_b;
 }
 
 /*
  * IPv4-specific closure over IPAddressOrRange_cmp, since sk_sort()
  * comparison routines are only allowed two arguments.
  */
-static int v4IPAddressOrRange_cmp(const IPAddressOrRange *const *a,
-                                  const IPAddressOrRange *const *b)
+static int
+v4IPAddressOrRange_cmp(const IPAddressOrRange *const *a,
+    const IPAddressOrRange *const *b)
 {
-    return IPAddressOrRange_cmp(*a, *b, 4);
+       return IPAddressOrRange_cmp(*a, *b, 4);
 }
 
 /*
  * IPv6-specific closure over IPAddressOrRange_cmp, since sk_sort()
  * comparison routines are only allowed two arguments.
  */
-static int v6IPAddressOrRange_cmp(const IPAddressOrRange *const *a,
-                                  const IPAddressOrRange *const *b)
+static int
+v6IPAddressOrRange_cmp(const IPAddressOrRange *const *a,
+    const IPAddressOrRange *const *b)
 {
-    return IPAddressOrRange_cmp(*a, *b, 16);
+       return IPAddressOrRange_cmp(*a, *b, 16);
 }
 
 /*
  * Calculate whether a range collapses to a prefix.
  * See last paragraph of RFC 3779 2.2.3.7.
  */
-static int range_should_be_prefix(const unsigned char *min,
-                                  const unsigned char *max, const int length)
+static int
+range_should_be_prefix(const unsigned char *min, const unsigned char *max,
+    const int length)
 {
-    unsigned char mask;
-    int i, j;
-
-    if (memcmp(min, max, length) <= 0)
-        return -1;
-    for (i = 0; i < length && min[i] == max[i]; i++) ;
-    for (j = length - 1; j >= 0 && min[j] == 0x00 && max[j] == 0xFF; j--) ;
-    if (i < j)
-        return -1;
-    if (i > j)
-        return i * 8;
-    mask = min[i] ^ max[i];
-    switch (mask) {
-    case 0x01:
-        j = 7;
-        break;
-    case 0x03:
-        j = 6;
-        break;
-    case 0x07:
-        j = 5;
-        break;
-    case 0x0F:
-        j = 4;
-        break;
-    case 0x1F:
-        j = 3;
-        break;
-    case 0x3F:
-        j = 2;
-        break;
-    case 0x7F:
-        j = 1;
-        break;
-    default:
-        return -1;
-    }
-    if ((min[i] & mask) != 0 || (max[i] & mask) != mask)
-        return -1;
-    else
-        return i * 8 + j;
+       unsigned char mask;
+       int i, j;
+
+       if (memcmp(min, max, length) <= 0)
+               return -1;
+       for (i = 0; i < length && min[i] == max[i]; i++)
+               ;
+       for (j = length - 1; j >= 0 && min[j] == 0x00 && max[j] == 0xFF; j--)
+               ;
+       if (i < j)
+               return -1;
+       if (i > j)
+               return i * 8;
+       mask = min[i] ^ max[i];
+       switch (mask) {
+       case 0x01:
+               j = 7;
+               break;
+       case 0x03:
+               j = 6;
+               break;
+       case 0x07:
+               j = 5;
+               break;
+       case 0x0F:
+               j = 4;
+               break;
+       case 0x1F:
+               j = 3;
+               break;
+       case 0x3F:
+               j = 2;
+               break;
+       case 0x7F:
+               j = 1;
+               break;
+       default:
+               return -1;
+       }
+       if ((min[i] & mask) != 0 || (max[i] & mask) != mask)
+               return -1;
+       else
+               return i * 8 + j;
 }
 
 /*
  * Construct a prefix.
  */
-static int make_addressPrefix(IPAddressOrRange **result,
-                              unsigned char *addr, const int prefixlen)
+static int
+make_addressPrefix(IPAddressOrRange **result, unsigned char *addr,
+    const int prefixlen)
 {
-    int bytelen = (prefixlen + 7) / 8, bitlen = prefixlen % 8;
-    IPAddressOrRange *aor = IPAddressOrRange_new();
-
-    if (aor == NULL)
-        return 0;
-    aor->type = IPAddressOrRange_addressPrefix;
-    if (aor->u.addressPrefix == NULL &&
-        (aor->u.addressPrefix = ASN1_BIT_STRING_new()) == NULL)
-        goto err;
-    if (!ASN1_BIT_STRING_set(aor->u.addressPrefix, addr, bytelen))
-        goto err;
-    aor->u.addressPrefix->flags &= ~7;
-    aor->u.addressPrefix->flags |= ASN1_STRING_FLAG_BITS_LEFT;
-    if (bitlen > 0) {
-        aor->u.addressPrefix->data[bytelen - 1] &= ~(0xFF >> bitlen);
-        aor->u.addressPrefix->flags |= 8 - bitlen;
-    }
-
-    *result = aor;
-    return 1;
-
- err:
-    IPAddressOrRange_free(aor);
-    return 0;
+       int bytelen = (prefixlen + 7) / 8, bitlen = prefixlen % 8;
+       IPAddressOrRange *aor = IPAddressOrRange_new();
+
+       if (aor == NULL)
+               return 0;
+       aor->type = IPAddressOrRange_addressPrefix;
+       if (aor->u.addressPrefix == NULL &&
+           (aor->u.addressPrefix = ASN1_BIT_STRING_new()) == NULL)
+               goto err;
+       if (!ASN1_BIT_STRING_set(aor->u.addressPrefix, addr, bytelen))
+               goto err;
+       aor->u.addressPrefix->flags &= ~7;
+       aor->u.addressPrefix->flags |= ASN1_STRING_FLAG_BITS_LEFT;
+       if (bitlen > 0) {
+               aor->u.addressPrefix->data[bytelen - 1] &= ~(0xFF >> bitlen);
+               aor->u.addressPrefix->flags |= 8 - bitlen;
+       }
+
+       *result = aor;
+       return 1;
+
+err:
+       IPAddressOrRange_free(aor);
+       return 0;
 }
 
 /*
@@ -618,241 +633,245 @@ static int make_addressPrefix(IPAddressOrRange **result,
  * return a prefix instead.  Doing this here simplifies
  * the rest of the code considerably.
  */
-static int make_addressRange(IPAddressOrRange **result,
-                             unsigned char *min,
-                             unsigned char *max, const int length)
+static int
+make_addressRange(IPAddressOrRange **result, unsigned char *min,
+    unsigned char *max, const int length)
 {
-    IPAddressOrRange *aor;
-    int i, prefixlen;
-
-    if ((prefixlen = range_should_be_prefix(min, max, length)) >= 0)
-        return make_addressPrefix(result, min, prefixlen);
-
-    if ((aor = IPAddressOrRange_new()) == NULL)
-        return 0;
-    aor->type = IPAddressOrRange_addressRange;
-    if ((aor->u.addressRange = IPAddressRange_new()) == NULL)
-        goto err;
-    if (aor->u.addressRange->min == NULL &&
-        (aor->u.addressRange->min = ASN1_BIT_STRING_new()) == NULL)
-        goto err;
-    if (aor->u.addressRange->max == NULL &&
-        (aor->u.addressRange->max = ASN1_BIT_STRING_new()) == NULL)
-        goto err;
-
-    for (i = length; i > 0 && min[i - 1] == 0x00; --i) ;
-    if (!ASN1_BIT_STRING_set(aor->u.addressRange->min, min, i))
-        goto err;
-    aor->u.addressRange->min->flags &= ~7;
-    aor->u.addressRange->min->flags |= ASN1_STRING_FLAG_BITS_LEFT;
-    if (i > 0) {
-        unsigned char b = min[i - 1];
-        int j = 1;
-        while ((b & (0xFFU >> j)) != 0)
-            ++j;
-        aor->u.addressRange->min->flags |= 8 - j;
-    }
-
-    for (i = length; i > 0 && max[i - 1] == 0xFF; --i) ;
-    if (!ASN1_BIT_STRING_set(aor->u.addressRange->max, max, i))
-        goto err;
-    aor->u.addressRange->max->flags &= ~7;
-    aor->u.addressRange->max->flags |= ASN1_STRING_FLAG_BITS_LEFT;
-    if (i > 0) {
-        unsigned char b = max[i - 1];
-        int j = 1;
-        while ((b & (0xFFU >> j)) != (0xFFU >> j))
-            ++j;
-        aor->u.addressRange->max->flags |= 8 - j;
-    }
-
-    *result = aor;
-    return 1;
-
- err:
-    IPAddressOrRange_free(aor);
-    return 0;
+       IPAddressOrRange *aor;
+       int i, prefixlen;
+
+       if ((prefixlen = range_should_be_prefix(min, max, length)) >= 0)
+               return make_addressPrefix(result, min, prefixlen);
+
+       if ((aor = IPAddressOrRange_new()) == NULL)
+               return 0;
+       aor->type = IPAddressOrRange_addressRange;
+       if ((aor->u.addressRange = IPAddressRange_new()) == NULL)
+               goto err;
+       if (aor->u.addressRange->min == NULL &&
+           (aor->u.addressRange->min = ASN1_BIT_STRING_new()) == NULL)
+               goto err;
+       if (aor->u.addressRange->max == NULL &&
+           (aor->u.addressRange->max = ASN1_BIT_STRING_new()) == NULL)
+               goto err;
+
+       for (i = length; i > 0 && min[i - 1] == 0x00; --i)
+               ;
+       if (!ASN1_BIT_STRING_set(aor->u.addressRange->min, min, i))
+               goto err;
+       aor->u.addressRange->min->flags &= ~7;
+       aor->u.addressRange->min->flags |= ASN1_STRING_FLAG_BITS_LEFT;
+       if (i > 0) {
+               unsigned char b = min[i - 1];
+               int j = 1;
+               while ((b & (0xFFU >> j)) != 0)
+                       ++j;
+               aor->u.addressRange->min->flags |= 8 - j;
+       }
+
+       for (i = length; i > 0 && max[i - 1] == 0xFF; --i)
+               ;
+       if (!ASN1_BIT_STRING_set(aor->u.addressRange->max, max, i))
+               goto err;
+       aor->u.addressRange->max->flags &= ~7;
+       aor->u.addressRange->max->flags |= ASN1_STRING_FLAG_BITS_LEFT;
+       if (i > 0) {
+               unsigned char b = max[i - 1];
+               int j = 1;
+               while ((b & (0xFFU >> j)) != (0xFFU >> j))
+                       ++j;
+               aor->u.addressRange->max->flags |= 8 - j;
+       }
+
+       *result = aor;
+       return 1;
+
+err:
+       IPAddressOrRange_free(aor);
+       return 0;
 }
 
 /*
  * Construct a new address family or find an existing one.
  */
-static IPAddressFamily *make_IPAddressFamily(IPAddrBlocks *addr,
-                                             const unsigned afi,
-                                             const unsigned *safi)
+static IPAddressFamily *
+make_IPAddressFamily(IPAddrBlocks *addr, const unsigned afi,
+    const unsigned *safi)
 {
-    IPAddressFamily *f;
-    unsigned char key[3];
-    int keylen;
-    int i;
-
-    key[0] = (afi >> 8) & 0xFF;
-    key[1] = afi & 0xFF;
-    if (safi != NULL) {
-        key[2] = *safi & 0xFF;
-        keylen = 3;
-    } else {
-        keylen = 2;
-    }
-
-    for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
-        f = sk_IPAddressFamily_value(addr, i);
-        if (f->addressFamily->length == keylen &&
-            !memcmp(f->addressFamily->data, key, keylen))
-            return f;
-    }
-
-    if ((f = IPAddressFamily_new()) == NULL)
-        goto err;
-    if (f->ipAddressChoice == NULL &&
-        (f->ipAddressChoice = IPAddressChoice_new()) == NULL)
-        goto err;
-    if (f->addressFamily == NULL &&
-        (f->addressFamily = ASN1_OCTET_STRING_new()) == NULL)
-        goto err;
-    if (!ASN1_OCTET_STRING_set(f->addressFamily, key, keylen))
-        goto err;
-    if (!sk_IPAddressFamily_push(addr, f))
-        goto err;
-
-    return f;
-
- err:
-    IPAddressFamily_free(f);
-    return NULL;
+       IPAddressFamily *f;
+       unsigned char key[3];
+       int keylen;
+       int i;
+
+       key[0] = (afi >> 8) & 0xFF;
+       key[1] = afi & 0xFF;
+       if (safi != NULL) {
+               key[2] = *safi & 0xFF;
+               keylen = 3;
+       } else {
+               keylen = 2;
+       }
+
+       for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+               f = sk_IPAddressFamily_value(addr, i);
+               if (f->addressFamily->length == keylen &&
+                   !memcmp(f->addressFamily->data, key, keylen))
+                       return f;
+       }
+
+       if ((f = IPAddressFamily_new()) == NULL)
+               goto err;
+       if (f->ipAddressChoice == NULL &&
+           (f->ipAddressChoice = IPAddressChoice_new()) == NULL)
+               goto err;
+       if (f->addressFamily == NULL &&
+           (f->addressFamily = ASN1_OCTET_STRING_new()) == NULL)
+               goto err;
+       if (!ASN1_OCTET_STRING_set(f->addressFamily, key, keylen))
+               goto err;
+       if (!sk_IPAddressFamily_push(addr, f))
+               goto err;
+
+       return f;
+
+err:
+       IPAddressFamily_free(f);
+       return NULL;
 }
 
 /*
  * Add an inheritance element.
  */
-int X509v3_addr_add_inherit(IPAddrBlocks *addr,
-                            const unsigned afi, const unsigned *safi)
+int
+X509v3_addr_add_inherit(IPAddrBlocks *addr, const unsigned afi,
+    const unsigned *safi)
 {
-    IPAddressFamily *f = make_IPAddressFamily(addr, afi, safi);
-    if (f == NULL ||
-        f->ipAddressChoice == NULL ||
-        (f->ipAddressChoice->type == IPAddressChoice_addressesOrRanges &&
-         f->ipAddressChoice->u.addressesOrRanges != NULL))
-        return 0;
-    if (f->ipAddressChoice->type == IPAddressChoice_inherit &&
-        f->ipAddressChoice->u.inherit != NULL)
-        return 1;
-    if (f->ipAddressChoice->u.inherit == NULL &&
-        (f->ipAddressChoice->u.inherit = ASN1_NULL_new()) == NULL)
-        return 0;
-    f->ipAddressChoice->type = IPAddressChoice_inherit;
-    return 1;
+       IPAddressFamily *f = make_IPAddressFamily(addr, afi, safi);
+       if (f == NULL ||
+           f->ipAddressChoice == NULL ||
+           (f->ipAddressChoice->type == IPAddressChoice_addressesOrRanges &&
+            f->ipAddressChoice->u.addressesOrRanges != NULL))
+               return 0;
+       if (f->ipAddressChoice->type == IPAddressChoice_inherit &&
+           f->ipAddressChoice->u.inherit != NULL)
+               return 1;
+       if (f->ipAddressChoice->u.inherit == NULL &&
+           (f->ipAddressChoice->u.inherit = ASN1_NULL_new()) == NULL)
+               return 0;
+       f->ipAddressChoice->type = IPAddressChoice_inherit;
+       return 1;
 }
 
 /*
  * Construct an IPAddressOrRange sequence, or return an existing one.
  */
-static IPAddressOrRanges *make_prefix_or_range(IPAddrBlocks *addr,
-                                               const unsigned afi,
-                                               const unsigned *safi)
+static IPAddressOrRanges *
+make_prefix_or_range(IPAddrBlocks *addr, const unsigned afi,
+    const unsigned *safi)
 {
-    IPAddressFamily *f = make_IPAddressFamily(addr, afi, safi);
-    IPAddressOrRanges *aors = NULL;
-
-    if (f == NULL ||
-        f->ipAddressChoice == NULL ||
-        (f->ipAddressChoice->type == IPAddressChoice_inherit &&
-         f->ipAddressChoice->u.inherit != NULL))
-        return NULL;
-    if (f->ipAddressChoice->type == IPAddressChoice_addressesOrRanges)
-        aors = f->ipAddressChoice->u.addressesOrRanges;
-    if (aors != NULL)
-        return aors;
-    if ((aors = sk_IPAddressOrRange_new_null()) == NULL)
-        return NULL;
-    switch (afi) {
-    case IANA_AFI_IPV4:
-        (void)sk_IPAddressOrRange_set_cmp_func(aors, v4IPAddressOrRange_cmp);
-        break;
-    case IANA_AFI_IPV6:
-        (void)sk_IPAddressOrRange_set_cmp_func(aors, v6IPAddressOrRange_cmp);
-        break;
-    }
-    f->ipAddressChoice->type = IPAddressChoice_addressesOrRanges;
-    f->ipAddressChoice->u.addressesOrRanges = aors;
-    return aors;
+       IPAddressFamily *f = make_IPAddressFamily(addr, afi, safi);
+       IPAddressOrRanges *aors = NULL;
+
+       if (f == NULL ||
+           f->ipAddressChoice == NULL ||
+           (f->ipAddressChoice->type == IPAddressChoice_inherit &&
+            f->ipAddressChoice->u.inherit != NULL))
+               return NULL;
+       if (f->ipAddressChoice->type == IPAddressChoice_addressesOrRanges)
+               aors = f->ipAddressChoice->u.addressesOrRanges;
+       if (aors != NULL)
+               return aors;
+       if ((aors = sk_IPAddressOrRange_new_null()) == NULL)
+               return NULL;
+       switch (afi) {
+       case IANA_AFI_IPV4:
+               (void)sk_IPAddressOrRange_set_cmp_func(aors,
+                   v4IPAddressOrRange_cmp);
+               break;
+       case IANA_AFI_IPV6:
+               (void)sk_IPAddressOrRange_set_cmp_func(aors,
+                   v6IPAddressOrRange_cmp);
+               break;
+       }
+       f->ipAddressChoice->type = IPAddressChoice_addressesOrRanges;
+       f->ipAddressChoice->u.addressesOrRanges = aors;
+       return aors;
 }
 
 /*
  * Add a prefix.
  */
-int X509v3_addr_add_prefix(IPAddrBlocks *addr,
-                           const unsigned afi,
-                           const unsigned *safi,
-                           unsigned char *a, const int prefixlen)
+int
+X509v3_addr_add_prefix(IPAddrBlocks *addr, const unsigned afi,
+    const unsigned *safi, unsigned char *a, const int prefixlen)
 {
-    IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
-    IPAddressOrRange *aor;
-    if (aors == NULL || !make_addressPrefix(&aor, a, prefixlen))
-        return 0;
-    if (sk_IPAddressOrRange_push(aors, aor))
-        return 1;
-    IPAddressOrRange_free(aor);
-    return 0;
+       IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
+       IPAddressOrRange *aor;
+       if (aors == NULL || !make_addressPrefix(&aor, a, prefixlen))
+               return 0;
+       if (sk_IPAddressOrRange_push(aors, aor))
+               return 1;
+       IPAddressOrRange_free(aor);
+       return 0;
 }
 
 /*
  * Add a range.
  */
-int X509v3_addr_add_range(IPAddrBlocks *addr,
-                          const unsigned afi,
-                          const unsigned *safi,
-                          unsigned char *min, unsigned char *max)
+int
+X509v3_addr_add_range(IPAddrBlocks *addr, const unsigned afi,
+    const unsigned *safi, unsigned char *min, unsigned char *max)
 {
-    IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
-    IPAddressOrRange *aor;
-    int length = length_from_afi(afi);
-    if (aors == NULL)
-        return 0;
-    if (!make_addressRange(&aor, min, max, length))
-        return 0;
-    if (sk_IPAddressOrRange_push(aors, aor))
-        return 1;
-    IPAddressOrRange_free(aor);
-    return 0;
+       IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
+       IPAddressOrRange *aor;
+       int length = length_from_afi(afi);
+       if (aors == NULL)
+               return 0;
+       if (!make_addressRange(&aor, min, max, length))
+               return 0;
+       if (sk_IPAddressOrRange_push(aors, aor))
+               return 1;
+       IPAddressOrRange_free(aor);
+       return 0;
 }
 
 /*
  * Extract min and max values from an IPAddressOrRange.
  */
-static int extract_min_max(IPAddressOrRange *aor,
-                           unsigned char *min, unsigned char *max, int length)
+static int
+extract_min_max(IPAddressOrRange *aor, unsigned char *min, unsigned char *max,
+    int length)
 {
-    if (aor == NULL || min == NULL || max == NULL)
-        return 0;
-    switch (aor->type) {
-    case IPAddressOrRange_addressPrefix:
-        return (addr_expand(min, aor->u.addressPrefix, length, 0x00) &&
-                addr_expand(max, aor->u.addressPrefix, length, 0xFF));
-    case IPAddressOrRange_addressRange:
-        return (addr_expand(min, aor->u.addressRange->min, length, 0x00) &&
-                addr_expand(max, aor->u.addressRange->max, length, 0xFF));
-    }
-    return 0;
+       if (aor == NULL || min == NULL || max == NULL)
+               return 0;
+       switch (aor->type) {
+       case IPAddressOrRange_addressPrefix:
+               return (addr_expand(min, aor->u.addressPrefix, length, 0x00) &&
+                   addr_expand(max, aor->u.addressPrefix, length, 0xFF));
+       case IPAddressOrRange_addressRange:
+               return (addr_expand(min, aor->u.addressRange->min, length,
+                   0x00) &&
+                   addr_expand(max, aor->u.addressRange->max, length, 0xFF));
+       }
+       return 0;
 }
 
 /*
  * Public wrapper for extract_min_max().
  */
-int X509v3_addr_get_range(IPAddressOrRange *aor,
-                          const unsigned afi,
-                          unsigned char *min,
-                          unsigned char *max, const int length)
+int
+X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi,
+    unsigned char *min, unsigned char *max, const int length)
 {
-    int afi_length = length_from_afi(afi);
-    if (aor == NULL || min == NULL || max == NULL ||
-        afi_length == 0 || length < afi_length ||
-        (aor->type != IPAddressOrRange_addressPrefix &&
-         aor->type != IPAddressOrRange_addressRange) ||
-        !extract_min_max(aor, min, max, afi_length))
-        return 0;
-
-    return afi_length;
+       int afi_length = length_from_afi(afi);
+       if (aor == NULL || min == NULL || max == NULL ||
+           afi_length == 0 || length < afi_length ||
+           (aor->type != IPAddressOrRange_addressPrefix &&
+            aor->type != IPAddressOrRange_addressRange) ||
+           !extract_min_max(aor, min, max, afi_length))
+               return 0;
+
+       return afi_length;
 }
 
 /*
@@ -865,479 +884,492 @@ int X509v3_addr_get_range(IPAddressOrRange *aor,
  * null-SAFI rule to apply only within a single AFI, which is what I
  * would have expected and is what the following code implements.
  */
-static int IPAddressFamily_cmp(const IPAddressFamily *const *a_,
-                               const IPAddressFamily *const *b_)
+static int
+IPAddressFamily_cmp(const IPAddressFamily *const *a_,
+    const IPAddressFamily *const *b_)
 {
-    const ASN1_OCTET_STRING *a = (*a_)->addressFamily;
-    const ASN1_OCTET_STRING *b = (*b_)->addressFamily;
-    int len = ((a->length <= b->length) ? a->length : b->length);
-    int cmp = memcmp(a->data, b->data, len);
-    return cmp ? cmp : a->length - b->length;
+       const ASN1_OCTET_STRING *a = (*a_)->addressFamily;
+       const ASN1_OCTET_STRING *b = (*b_)->addressFamily;
+       int len = ((a->length <= b->length) ? a->length : b->length);
+       int cmp = memcmp(a->data, b->data, len);
+       return cmp ? cmp : a->length - b->length;
 }
 
 /*
  * Check whether an IPAddrBLocks is in canonical form.
  */
-int X509v3_addr_is_canonical(IPAddrBlocks *addr)
+int
+X509v3_addr_is_canonical(IPAddrBlocks *addr)
 {
-    unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
-    unsigned char b_min[ADDR_RAW_BUF_LEN], b_max[ADDR_RAW_BUF_LEN];
-    IPAddressOrRanges *aors;
-    int i, j, k;
+       unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
+       unsigned char b_min[ADDR_RAW_BUF_LEN], b_max[ADDR_RAW_BUF_LEN];
+       IPAddressOrRanges *aors;
+       int i, j, k;
 
     /*
      * Empty extension is canonical.
      */
-    if (addr == NULL)
-        return 1;
+       if (addr == NULL)
+               return 1;
 
     /*
      * Check whether the top-level list is in order.
      */
-    for (i = 0; i < sk_IPAddressFamily_num(addr) - 1; i++) {
-        const IPAddressFamily *a = sk_IPAddressFamily_value(addr, i);
-        const IPAddressFamily *b = sk_IPAddressFamily_value(addr, i + 1);
-        if (IPAddressFamily_cmp(&a, &b) >= 0)
-            return 0;
-    }
+       for (i = 0; i < sk_IPAddressFamily_num(addr) - 1; i++) {
+               const IPAddressFamily *a = sk_IPAddressFamily_value(addr, i);
+               const IPAddressFamily *b = sk_IPAddressFamily_value(addr, i + 1);
+               if (IPAddressFamily_cmp(&a, &b) >= 0)
+                       return 0;
+       }
 
     /*
      * Top level's ok, now check each address family.
      */
-    for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
-        IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
-        int length = length_from_afi(X509v3_addr_get_afi(f));
+       for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+               IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
+               int length = length_from_afi(X509v3_addr_get_afi(f));
 
         /*
          * Inheritance is canonical.  Anything other than inheritance or
          * a SEQUENCE OF IPAddressOrRange is an ASN.1 error or something.
          */
-        if (f == NULL || f->ipAddressChoice == NULL)
-            return 0;
-        switch (f->ipAddressChoice->type) {
-        case IPAddressChoice_inherit:
-            continue;
-        case IPAddressChoice_addressesOrRanges:
-            break;
-        default:
-            return 0;
-        }
+               if (f == NULL || f->ipAddressChoice == NULL)
+                       return 0;
+               switch (f->ipAddressChoice->type) {
+               case IPAddressChoice_inherit:
+                       continue;
+               case IPAddressChoice_addressesOrRanges:
+                       break;
+               default:
+                       return 0;
+               }
 
         /*
          * It's an IPAddressOrRanges sequence, check it.
          */
-        aors = f->ipAddressChoice->u.addressesOrRanges;
-        if (sk_IPAddressOrRange_num(aors) == 0)
-            return 0;
-        for (j = 0; j < sk_IPAddressOrRange_num(aors) - 1; j++) {
-            IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
-            IPAddressOrRange *b = sk_IPAddressOrRange_value(aors, j + 1);
-
-            if (!extract_min_max(a, a_min, a_max, length) ||
-                !extract_min_max(b, b_min, b_max, length))
-                return 0;
+               aors = f->ipAddressChoice->u.addressesOrRanges;
+               if (sk_IPAddressOrRange_num(aors) == 0)
+                       return 0;
+               for (j = 0; j < sk_IPAddressOrRange_num(aors) - 1; j++) {
+                       IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
+                       IPAddressOrRange *b = sk_IPAddressOrRange_value(aors,
+                           j + 1);
+
+                       if (!extract_min_max(a, a_min, a_max, length) ||
+                           !extract_min_max(b, b_min, b_max, length))
+                               return 0;
 
             /*
              * Punt misordered list, overlapping start, or inverted range.
              */
-            if (memcmp(a_min, b_min, length) >= 0 ||
-                memcmp(a_min, a_max, length) > 0 ||
-                memcmp(b_min, b_max, length) > 0)
-                return 0;
+                       if (memcmp(a_min, b_min, length) >= 0 ||
+                           memcmp(a_min, a_max, length) > 0 ||
+                           memcmp(b_min, b_max, length) > 0)
+                               return 0;
 
             /*
              * Punt if adjacent or overlapping.  Check for adjacency by
              * subtracting one from b_min first.
              */
-            for (k = length - 1; k >= 0 && b_min[k]-- == 0x00; k--) ;
-            if (memcmp(a_max, b_min, length) >= 0)
-                return 0;
+                       for (k = length - 1; k >= 0 && b_min[k]-- == 0x00; k--)
+                               ;
+                       if (memcmp(a_max, b_min, length) >= 0)
+                               return 0;
 
             /*
              * Check for range that should be expressed as a prefix.
              */
-            if (a->type == IPAddressOrRange_addressRange &&
-                range_should_be_prefix(a_min, a_max, length) >= 0)
-                return 0;
-        }
+                       if (a->type == IPAddressOrRange_addressRange &&
+                           range_should_be_prefix(a_min, a_max, length) >= 0)
+                               return 0;
+               }
 
         /*
          * Check range to see if it's inverted or should be a
          * prefix.
          */
-        j = sk_IPAddressOrRange_num(aors) - 1;
-        {
-            IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
-            if (a != NULL && a->type == IPAddressOrRange_addressRange) {
-                if (!extract_min_max(a, a_min, a_max, length))
-                    return 0;
-                if (memcmp(a_min, a_max, length) > 0 ||
-                    range_should_be_prefix(a_min, a_max, length) >= 0)
-                    return 0;
-            }
-        }
-    }
+               j = sk_IPAddressOrRange_num(aors) - 1;
+               {
+                       IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
+                       if (a != NULL &&
+                           a->type == IPAddressOrRange_addressRange) {
+                               if (!extract_min_max(a, a_min, a_max, length))
+                                       return 0;
+                               if (memcmp(a_min, a_max, length) > 0 ||
+                                   range_should_be_prefix(a_min, a_max,
+                                   length) >= 0)
+                                       return 0;
+                       }
+               }
+       }
 
     /*
      * If we made it through all that, we're happy.
      */
-    return 1;
+       return 1;
 }
 
 /*
  * Whack an IPAddressOrRanges into canonical form.
  */
-static int IPAddressOrRanges_canonize(IPAddressOrRanges *aors,
-                                      const unsigned afi)
+static int
+IPAddressOrRanges_canonize(IPAddressOrRanges *aors, const unsigned afi)
 {
-    int i, j, length = length_from_afi(afi);
+       int i, j, length = length_from_afi(afi);
 
     /*
      * Sort the IPAddressOrRanges sequence.
      */
-    sk_IPAddressOrRange_sort(aors);
+       sk_IPAddressOrRange_sort(aors);
 
     /*
      * Clean up representation issues, punt on duplicates or overlaps.
      */
-    for (i = 0; i < sk_IPAddressOrRange_num(aors) - 1; i++) {
-        IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, i);
-        IPAddressOrRange *b = sk_IPAddressOrRange_value(aors, i + 1);
-        unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
-        unsigned char b_min[ADDR_RAW_BUF_LEN], b_max[ADDR_RAW_BUF_LEN];
+       for (i = 0; i < sk_IPAddressOrRange_num(aors) - 1; i++) {
+               IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, i);
+               IPAddressOrRange *b = sk_IPAddressOrRange_value(aors, i + 1);
+               unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
+               unsigned char b_min[ADDR_RAW_BUF_LEN], b_max[ADDR_RAW_BUF_LEN];
 
-        if (!extract_min_max(a, a_min, a_max, length) ||
-            !extract_min_max(b, b_min, b_max, length))
-            return 0;
+               if (!extract_min_max(a, a_min, a_max, length) ||
+                   !extract_min_max(b, b_min, b_max, length))
+                       return 0;
 
         /*
          * Punt inverted ranges.
          */
-        if (memcmp(a_min, a_max, length) > 0 ||
-            memcmp(b_min, b_max, length) > 0)
-            return 0;
+               if (memcmp(a_min, a_max, length) > 0 ||
+                   memcmp(b_min, b_max, length) > 0)
+                       return 0;
 
         /*
          * Punt overlaps.
          */
-        if (memcmp(a_max, b_min, length) >= 0)
-            return 0;
+               if (memcmp(a_max, b_min, length) >= 0)
+                       return 0;
 
         /*
          * Merge if a and b are adjacent.  We check for
          * adjacency by subtracting one from b_min first.
          */
-        for (j = length - 1; j >= 0 && b_min[j]-- == 0x00; j--) ;
-        if (memcmp(a_max, b_min, length) == 0) {
-            IPAddressOrRange *merged;
-            if (!make_addressRange(&merged, a_min, b_max, length))
-                return 0;
-            (void)sk_IPAddressOrRange_set(aors, i, merged);
-            (void)sk_IPAddressOrRange_delete(aors, i + 1);
-            IPAddressOrRange_free(a);
-            IPAddressOrRange_free(b);
-            --i;
-            continue;
-        }
-    }
+               for (j = length - 1; j >= 0 && b_min[j]-- == 0x00; j--)
+                       ;
+               if (memcmp(a_max, b_min, length) == 0) {
+                       IPAddressOrRange *merged;
+                       if (!make_addressRange(&merged, a_min, b_max, length))
+                               return 0;
+                       (void)sk_IPAddressOrRange_set(aors, i, merged);
+                       (void)sk_IPAddressOrRange_delete(aors, i + 1);
+                       IPAddressOrRange_free(a);
+                       IPAddressOrRange_free(b);
+                       --i;
+                       continue;
+               }
+       }
 
     /*
      * Check for inverted final range.
      */
-    j = sk_IPAddressOrRange_num(aors) - 1;
-    {
-        IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
-        if (a != NULL && a->type == IPAddressOrRange_addressRange) {
-            unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
-            if (!extract_min_max(a, a_min, a_max, length))
-                return 0;
-            if (memcmp(a_min, a_max, length) > 0)
-                return 0;
-        }
-    }
-
-    return 1;
+       j = sk_IPAddressOrRange_num(aors) - 1;
+       {
+               IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
+               if (a != NULL && a->type == IPAddressOrRange_addressRange) {
+                       unsigned char a_min[ADDR_RAW_BUF_LEN],
+                       a_max[ADDR_RAW_BUF_LEN];
+                       if (!extract_min_max(a, a_min, a_max, length))
+                               return 0;
+                       if (memcmp(a_min, a_max, length) > 0)
+                               return 0;
+               }
+       }
+
+       return 1;
 }
 
 /*
  * Whack an IPAddrBlocks extension into canonical form.
  */
-int X509v3_addr_canonize(IPAddrBlocks *addr)
+int
+X509v3_addr_canonize(IPAddrBlocks *addr)
 {
-    int i;
-    for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
-        IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
-        if (f->ipAddressChoice->type == IPAddressChoice_addressesOrRanges &&
-            !IPAddressOrRanges_canonize(f->ipAddressChoice->
-                                        u.addressesOrRanges,
-                                        X509v3_addr_get_afi(f)))
-            return 0;
-    }
-    (void)sk_IPAddressFamily_set_cmp_func(addr, IPAddressFamily_cmp);
-    sk_IPAddressFamily_sort(addr);
-    OPENSSL_assert(X509v3_addr_is_canonical(addr));
-    return 1;
+       int i;
+       for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+               IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
+               if (f->ipAddressChoice->type ==
+                   IPAddressChoice_addressesOrRanges &&
+                   !IPAddressOrRanges_canonize(f->ipAddressChoice->u.addressesOrRanges,
+                   X509v3_addr_get_afi(f)))
+                       return 0;
+       }
+       (void)sk_IPAddressFamily_set_cmp_func(addr, IPAddressFamily_cmp);
+       sk_IPAddressFamily_sort(addr);
+       OPENSSL_assert(X509v3_addr_is_canonical(addr));
+       return 1;
 }
 
 /*
  * v2i handler for the IPAddrBlocks extension.
  */
-static void *v2i_IPAddrBlocks(const struct v3_ext_method *method,
-                              struct v3_ext_ctx *ctx,
-                              STACK_OF(CONF_VALUE) *values)
+static void *
+v2i_IPAddrBlocks(const struct v3_ext_method *method, struct v3_ext_ctx *ctx,
+    STACK_OF(CONF_VALUE)*values)
 {
-    static const char v4addr_chars[] = "0123456789.";
-    static const char v6addr_chars[] = "0123456789.:abcdefABCDEF";
-    IPAddrBlocks *addr = NULL;
-    char *s = NULL, *t;
-    int i;
-
-    if ((addr = sk_IPAddressFamily_new(IPAddressFamily_cmp)) == NULL) {
-        X509V3error(ERR_R_MALLOC_FAILURE);
-        return NULL;
-    }
-
-    for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
-        CONF_VALUE *val = sk_CONF_VALUE_value(values, i);
-        unsigned char min[ADDR_RAW_BUF_LEN], max[ADDR_RAW_BUF_LEN];
-        unsigned afi, *safi = NULL, safi_;
-        const char *addr_chars = NULL;
-        int prefixlen, i1, i2, delim, length;
-
-        if (!name_cmp(val->name, "IPv4")) {
-            afi = IANA_AFI_IPV4;
-        } else if (!name_cmp(val->name, "IPv6")) {
-            afi = IANA_AFI_IPV6;
-        } else if (!name_cmp(val->name, "IPv4-SAFI")) {
-            afi = IANA_AFI_IPV4;
-            safi = &safi_;
-        } else if (!name_cmp(val->name, "IPv6-SAFI")) {
-            afi = IANA_AFI_IPV6;
-            safi = &safi_;
-        } else {
-            X509V3error(X509V3_R_EXTENSION_NAME_ERROR);
-            X509V3_conf_err(val);
-            goto err;
-        }
-
-        switch (afi) {
-        case IANA_AFI_IPV4:
-            addr_chars = v4addr_chars;
-            break;
-        case IANA_AFI_IPV6:
-            addr_chars = v6addr_chars;
-            break;
-        }
-
-        length = length_from_afi(afi);
+       static const char v4addr_chars[] = "0123456789.";
+       static const char v6addr_chars[] = "0123456789.:abcdefABCDEF";
+       IPAddrBlocks *addr = NULL;
+       char *s = NULL, *t;
+       int i;
+
+       if ((addr = sk_IPAddressFamily_new(IPAddressFamily_cmp)) == NULL) {
+               X509V3error(ERR_R_MALLOC_FAILURE);
+               return NULL;
+       }
+
+       for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
+               CONF_VALUE *val = sk_CONF_VALUE_value(values, i);
+               unsigned char min[ADDR_RAW_BUF_LEN], max[ADDR_RAW_BUF_LEN];
+               unsigned afi, *safi = NULL, safi_;
+               const char *addr_chars = NULL;
+               int prefixlen, i1, i2, delim, length;
+
+               if (!name_cmp(val->name, "IPv4")) {
+                       afi = IANA_AFI_IPV4;
+               } else if (!name_cmp(val->name, "IPv6")) {
+                       afi = IANA_AFI_IPV6;
+               } else if (!name_cmp(val->name, "IPv4-SAFI")) {
+                       afi = IANA_AFI_IPV4;
+                       safi = &safi_;
+               } else if (!name_cmp(val->name, "IPv6-SAFI")) {
+                       afi = IANA_AFI_IPV6;
+                       safi = &safi_;
+               } else {
+                       X509V3error(X509V3_R_EXTENSION_NAME_ERROR);
+                       X509V3_conf_err(val);
+                       goto err;
+               }
+
+               switch (afi) {
+               case IANA_AFI_IPV4:
+                       addr_chars = v4addr_chars;
+                       break;
+               case IANA_AFI_IPV6:
+                       addr_chars = v6addr_chars;
+                       break;
+               }
+
+               length = length_from_afi(afi);
 
         /*
          * Handle SAFI, if any, and strdup() so we can null-terminate
          * the other input values.
          */
-        if (safi != NULL) {
-            *safi = strtoul(val->value, &t, 0);
-            t += strspn(t, " \t");
-            if (*safi > 0xFF || *t++ != ':') {
-                X509V3error(X509V3_R_INVALID_SAFI);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            t += strspn(t, " \t");
-            s = strdup(t);
-        } else {
-            s = strdup(val->value);
-        }
-        if (s == NULL) {
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto err;
-        }
+               if (safi != NULL) {
+                       *safi = strtoul(val->value, &t, 0);
+                       t += strspn(t, " \t");
+                       if (*safi > 0xFF || *t++ != ':') {
+                               X509V3error(X509V3_R_INVALID_SAFI);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       t += strspn(t, " \t");
+                       s = strdup(t);
+               } else {
+                       s = strdup(val->value);
+               }
+               if (s == NULL) {
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto err;
+               }
 
         /*
          * Check for inheritance.  Not worth additional complexity to
          * optimize this (seldom-used) case.
          */
-        if (strcmp(s, "inherit") == 0) {
-            if (!X509v3_addr_add_inherit(addr, afi, safi)) {
-                X509V3error(X509V3_R_INVALID_INHERITANCE);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            free(s);
-            s = NULL;
-            continue;
-        }
-
-        i1 = strspn(s, addr_chars);
-        i2 = i1 + strspn(s + i1, " \t");
-        delim = s[i2++];
-        s[i1] = '\0';
-
-        if (a2i_ipadd(min, s) != length) {
-            X509V3error(X509V3_R_INVALID_IPADDRESS);
-            X509V3_conf_err(val);
-            goto err;
-        }
-
-        switch (delim) {
-        case '/':
-            prefixlen = (int)strtoul(s + i2, &t, 10);
-            if (t == s + i2 || *t != '\0') {
-                X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            if (!X509v3_addr_add_prefix(addr, afi, safi, min, prefixlen)) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-            break;
-        case '-':
-            i1 = i2 + strspn(s + i2, " \t");
-            i2 = i1 + strspn(s + i1, addr_chars);
-            if (i1 == i2 || s[i2] != '\0') {
-                X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            if (a2i_ipadd(max, s + i1) != length) {
-                X509V3error(X509V3_R_INVALID_IPADDRESS);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            if (memcmp(min, max, length_from_afi(afi)) > 0) {
-                X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            if (!X509v3_addr_add_range(addr, afi, safi, min, max)) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-            break;
-        case '\0':
-            if (!X509v3_addr_add_prefix(addr, afi, safi, min, length * 8)) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-            break;
-        default:
-            X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-            X509V3_conf_err(val);
-            goto err;
-        }
-
-        free(s);
-        s = NULL;
-    }
+               if (strcmp(s, "inherit") == 0) {
+                       if (!X509v3_addr_add_inherit(addr, afi, safi)) {
+                               X509V3error(X509V3_R_INVALID_INHERITANCE);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       free(s);
+                       s = NULL;
+                       continue;
+               }
+
+               i1 = strspn(s, addr_chars);
+               i2 = i1 + strspn(s + i1, " \t");
+               delim = s[i2++];
+               s[i1] = '\0';
+
+               if (a2i_ipadd(min, s) != length) {
+                       X509V3error(X509V3_R_INVALID_IPADDRESS);
+                       X509V3_conf_err(val);
+                       goto err;
+               }
+
+               switch (delim) {
+               case '/':
+                       prefixlen = (int)strtoul(s + i2, &t, 10);
+                       if (t == s + i2 || *t != '\0') {
+                               X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       if (!X509v3_addr_add_prefix(addr, afi, safi, min,
+                           prefixlen)) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+                       break;
+               case '-':
+                       i1 = i2 + strspn(s + i2, " \t");
+                       i2 = i1 + strspn(s + i1, addr_chars);
+                       if (i1 == i2 || s[i2] != '\0') {
+                               X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       if (a2i_ipadd(max, s + i1) != length) {
+                               X509V3error(X509V3_R_INVALID_IPADDRESS);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       if (memcmp(min, max, length_from_afi(afi)) > 0) {
+                               X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       if (!X509v3_addr_add_range(addr, afi, safi, min, max)) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+                       break;
+               case '\0':
+                       if (!X509v3_addr_add_prefix(addr, afi, safi, min,
+                           length * 8)) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+                       break;
+               default:
+                       X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                       X509V3_conf_err(val);
+                       goto err;
+               }
+
+               free(s);
+               s = NULL;
+       }
 
     /*
      * Canonize the result, then we're done.
      */
-    if (!X509v3_addr_canonize(addr))
-        goto err;
-    return addr;
-
- err:
-    free(s);
-    sk_IPAddressFamily_pop_free(addr, IPAddressFamily_free);
-    return NULL;
+       if (!X509v3_addr_canonize(addr))
+               goto err;
+       return addr;
+
+err:
+       free(s);
+       sk_IPAddressFamily_pop_free(addr, IPAddressFamily_free);
+       return NULL;
 }
 
 /*
  * OpenSSL dispatch
  */
 const X509V3_EXT_METHOD v3_addr = {
-    NID_sbgp_ipAddrBlock,       /* nid */
-    0,                          /* flags */
-    &IPAddrBlocks_it,
-    0, 0, 0, 0,                 /* old functions, ignored */
-    0,                          /* i2s */
-    0,                          /* s2i */
-    0,                          /* i2v */
-    v2i_IPAddrBlocks,           /* v2i */
-    i2r_IPAddrBlocks,           /* i2r */
-    0,                          /* r2i */
-    NULL                        /* extension-specific data */
+       NID_sbgp_ipAddrBlock,       /* nid */
+       0,                          /* flags */
+       &IPAddrBlocks_it,
+       0, 0, 0, 0,                 /* old functions, ignored */
+       0,                          /* i2s */
+       0,                          /* s2i */
+       0,                          /* i2v */
+       v2i_IPAddrBlocks,           /* v2i */
+       i2r_IPAddrBlocks,           /* i2r */
+       0,                          /* r2i */
+       NULL                        /* extension-specific data */
 };
 
 /*
  * Figure out whether extension sues inheritance.
  */
-int X509v3_addr_inherits(IPAddrBlocks *addr)
+int
+X509v3_addr_inherits(IPAddrBlocks *addr)
 {
-    int i;
-    if (addr == NULL)
-        return 0;
-    for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
-        IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
-        if (f->ipAddressChoice->type == IPAddressChoice_inherit)
-            return 1;
-    }
-    return 0;
+       int i;
+       if (addr == NULL)
+               return 0;
+       for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+               IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
+               if (f->ipAddressChoice->type == IPAddressChoice_inherit)
+                       return 1;
+       }
+       return 0;
 }
 
 /*
  * Figure out whether parent contains child.
  */
-static int addr_contains(IPAddressOrRanges *parent,
-                         IPAddressOrRanges *child, int length)
+static int
+addr_contains(IPAddressOrRanges *parent, IPAddressOrRanges *child, int length)
 {
-    unsigned char p_min[ADDR_RAW_BUF_LEN], p_max[ADDR_RAW_BUF_LEN];
-    unsigned char c_min[ADDR_RAW_BUF_LEN], c_max[ADDR_RAW_BUF_LEN];
-    int p, c;
-
-    if (child == NULL || parent == child)
-        return 1;
-    if (parent == NULL)
-        return 0;
-
-    p = 0;
-    for (c = 0; c < sk_IPAddressOrRange_num(child); c++) {
-        if (!extract_min_max(sk_IPAddressOrRange_value(child, c),
-                             c_min, c_max, length))
-            return -1;
-        for (;; p++) {
-            if (p >= sk_IPAddressOrRange_num(parent))
-                return 0;
-            if (!extract_min_max(sk_IPAddressOrRange_value(parent, p),
-                                 p_min, p_max, length))
-                return 0;
-            if (memcmp(p_max, c_max, length) < 0)
-                continue;
-            if (memcmp(p_min, c_min, length) > 0)
-                return 0;
-            break;
-        }
-    }
-
-    return 1;
+       unsigned char p_min[ADDR_RAW_BUF_LEN], p_max[ADDR_RAW_BUF_LEN];
+       unsigned char c_min[ADDR_RAW_BUF_LEN], c_max[ADDR_RAW_BUF_LEN];
+       int p, c;
+
+       if (child == NULL || parent == child)
+               return 1;
+       if (parent == NULL)
+               return 0;
+
+       p = 0;
+       for (c = 0; c < sk_IPAddressOrRange_num(child); c++) {
+               if (!extract_min_max(sk_IPAddressOrRange_value(child, c),
+                   c_min, c_max, length))
+                       return -1;
+               for (;; p++) {
+                       if (p >= sk_IPAddressOrRange_num(parent))
+                               return 0;
+                       if (!extract_min_max(sk_IPAddressOrRange_value(parent,
+                           p), p_min, p_max, length))
+                               return 0;
+                       if (memcmp(p_max, c_max, length) < 0)
+                               continue;
+                       if (memcmp(p_min, c_min, length) > 0)
+                               return 0;
+                       break;
+               }
+       }
+
+       return 1;
 }
 
 /*
  * Test whether a is a subset of b.
  */
-int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
+int
+X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
 {
-    int i;
-    if (a == NULL || a == b)
-        return 1;
-    if (b == NULL || X509v3_addr_inherits(a) || X509v3_addr_inherits(b))
-        return 0;
-    (void)sk_IPAddressFamily_set_cmp_func(b, IPAddressFamily_cmp);
-    for (i = 0; i < sk_IPAddressFamily_num(a); i++) {
-        IPAddressFamily *fa = sk_IPAddressFamily_value(a, i);
-        int j = sk_IPAddressFamily_find(b, fa);
-        IPAddressFamily *fb;
-        fb = sk_IPAddressFamily_value(b, j);
-        if (fb == NULL)
-            return 0;
-        if (!addr_contains(fb->ipAddressChoice->u.addressesOrRanges,
-                           fa->ipAddressChoice->u.addressesOrRanges,
-                           length_from_afi(X509v3_addr_get_afi(fb))))
-            return 0;
-    }
-    return 1;
+       int i;
+       if (a == NULL || a == b)
+               return 1;
+       if (b == NULL || X509v3_addr_inherits(a) || X509v3_addr_inherits(b))
+               return 0;
+       (void)sk_IPAddressFamily_set_cmp_func(b, IPAddressFamily_cmp);
+       for (i = 0; i < sk_IPAddressFamily_num(a); i++) {
+               IPAddressFamily *fa = sk_IPAddressFamily_value(a, i);
+               int j = sk_IPAddressFamily_find(b, fa);
+               IPAddressFamily *fb;
+               fb = sk_IPAddressFamily_value(b, j);
+               if (fb == NULL)
+                       return 0;
+               if (!addr_contains(fb->ipAddressChoice->u.addressesOrRanges,
+                   fa->ipAddressChoice->u.addressesOrRanges,
+                   length_from_afi(X509v3_addr_get_afi(fb))))
+                       return 0;
+       }
+       return 1;
 }
 
 /*
@@ -1365,105 +1397,109 @@ int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
  * When returning 0, ctx->error MUST be set to an appropriate value other than
  * X509_V_OK.
  */
-static int addr_validate_path_internal(X509_STORE_CTX *ctx,
-                                       STACK_OF(X509) *chain,
-                                       IPAddrBlocks *ext)
+static int
+addr_validate_path_internal(X509_STORE_CTX *ctx, STACK_OF(X509)*chain,
+    IPAddrBlocks *ext)
 {
-    IPAddrBlocks *child = NULL;
-    int i, j, ret = 1;
-    X509 *x;
+       IPAddrBlocks *child = NULL;
+       int i, j, ret = 1;
+       X509 *x;
 
-    OPENSSL_assert(chain != NULL && sk_X509_num(chain) > 0);
-    OPENSSL_assert(ctx != NULL || ext != NULL);
-    OPENSSL_assert(ctx == NULL || ctx->verify_cb != NULL);
+       OPENSSL_assert(chain != NULL && sk_X509_num(chain) > 0);
+       OPENSSL_assert(ctx != NULL || ext != NULL);
+       OPENSSL_assert(ctx == NULL || ctx->verify_cb != NULL);
 
     /*
      * Figure out where to start.  If we don't have an extension to
      * check, we're done.  Otherwise, check canonical form and
      * set up for walking up the chain.
      */
-    if (ext != NULL) {
-        i = -1;
-        x = NULL;
-    } else {
-        i = 0;
-        x = sk_X509_value(chain, i);
-        if ((ext = x->rfc3779_addr) == NULL)
-            goto done;
-    }
-    if (!X509v3_addr_is_canonical(ext))
-        validation_err(X509_V_ERR_INVALID_EXTENSION);
-    (void)sk_IPAddressFamily_set_cmp_func(ext, IPAddressFamily_cmp);
-    if ((child = sk_IPAddressFamily_dup(ext)) == NULL) {
-        X509V3error(ERR_R_MALLOC_FAILURE);
-        if (ctx != NULL)
-            ctx->error = X509_V_ERR_OUT_OF_MEM;
-        ret = 0;
-        goto done;
-    }
+       if (ext != NULL) {
+               i = -1;
+               x = NULL;
+       } else {
+               i = 0;
+               x = sk_X509_value(chain, i);
+               if ((ext = x->rfc3779_addr) == NULL)
+                       goto done;
+       }
+       if (!X509v3_addr_is_canonical(ext))
+               validation_err(X509_V_ERR_INVALID_EXTENSION);
+       (void)sk_IPAddressFamily_set_cmp_func(ext, IPAddressFamily_cmp);
+       if ((child = sk_IPAddressFamily_dup(ext)) == NULL) {
+               X509V3error(ERR_R_MALLOC_FAILURE);
+               if (ctx != NULL)
+                       ctx->error = X509_V_ERR_OUT_OF_MEM;
+               ret = 0;
+               goto done;
+       }
 
     /*
      * Now walk up the chain.  No cert may list resources that its
      * parent doesn't list.
      */
-    for (i++; i < sk_X509_num(chain); i++) {
-        x = sk_X509_value(chain, i);
-        if (!X509v3_addr_is_canonical(x->rfc3779_addr))
-            validation_err(X509_V_ERR_INVALID_EXTENSION);
-        if (x->rfc3779_addr == NULL) {
-            for (j = 0; j < sk_IPAddressFamily_num(child); j++) {
-                IPAddressFamily *fc = sk_IPAddressFamily_value(child, j);
-                if (fc->ipAddressChoice->type != IPAddressChoice_inherit) {
-                    validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-                    break;
-                }
-            }
-            continue;
-        }
-        (void)sk_IPAddressFamily_set_cmp_func(x->rfc3779_addr,
-                                              IPAddressFamily_cmp);
-        for (j = 0; j < sk_IPAddressFamily_num(child); j++) {
-            IPAddressFamily *fc = sk_IPAddressFamily_value(child, j);
-            int k = sk_IPAddressFamily_find(x->rfc3779_addr, fc);
-            IPAddressFamily *fp =
-                sk_IPAddressFamily_value(x->rfc3779_addr, k);
-            if (fp == NULL) {
-                if (fc->ipAddressChoice->type ==
-                    IPAddressChoice_addressesOrRanges) {
-                    validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-                    break;
-                }
-                continue;
-            }
-            if (fp->ipAddressChoice->type ==
-                IPAddressChoice_addressesOrRanges) {
-                if (fc->ipAddressChoice->type == IPAddressChoice_inherit
-                    || addr_contains(fp->ipAddressChoice->u.addressesOrRanges,
-                                     fc->ipAddressChoice->u.addressesOrRanges,
-                                     length_from_afi(X509v3_addr_get_afi(fc))))
-                    sk_IPAddressFamily_set(child, j, fp);
-                else
-                    validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            }
-        }
-    }
+       for (i++; i < sk_X509_num(chain); i++) {
+               x = sk_X509_value(chain, i);
+               if (!X509v3_addr_is_canonical(x->rfc3779_addr))
+                       validation_err(X509_V_ERR_INVALID_EXTENSION);
+               if (x->rfc3779_addr == NULL) {
+                       for (j = 0; j < sk_IPAddressFamily_num(child); j++) {
+                               IPAddressFamily *fc = sk_IPAddressFamily_value(child,
+                                   j);
+                               if (fc->ipAddressChoice->type !=
+                                   IPAddressChoice_inherit) {
+                                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                                       break;
+                               }
+                       }
+                       continue;
+               }
+               (void)sk_IPAddressFamily_set_cmp_func(x->rfc3779_addr,
+                   IPAddressFamily_cmp);
+               for (j = 0; j < sk_IPAddressFamily_num(child); j++) {
+                       IPAddressFamily *fc = sk_IPAddressFamily_value(child, j);
+                       int k = sk_IPAddressFamily_find(x->rfc3779_addr, fc);
+                       IPAddressFamily *fp =
+                           sk_IPAddressFamily_value(x->rfc3779_addr, k);
+                       if (fp == NULL) {
+                               if (fc->ipAddressChoice->type ==
+                                   IPAddressChoice_addressesOrRanges) {
+                                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                                       break;
+                               }
+                               continue;
+                       }
+                       if (fp->ipAddressChoice->type ==
+                           IPAddressChoice_addressesOrRanges) {
+                               if (fc->ipAddressChoice->type ==
+                                   IPAddressChoice_inherit ||
+                                   addr_contains(fp->ipAddressChoice->u.addressesOrRanges,
+                                   fc->ipAddressChoice->u.addressesOrRanges,
+                                   length_from_afi(X509v3_addr_get_afi(fc))))
+                                       sk_IPAddressFamily_set(child, j, fp);
+                               else
+                                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       }
+               }
+       }
 
     /*
      * Trust anchor can't inherit.
      */
-    if (x->rfc3779_addr != NULL) {
-        for (j = 0; j < sk_IPAddressFamily_num(x->rfc3779_addr); j++) {
-            IPAddressFamily *fp =
-                sk_IPAddressFamily_value(x->rfc3779_addr, j);
-            if (fp->ipAddressChoice->type == IPAddressChoice_inherit
-                && sk_IPAddressFamily_find(child, fp) >= 0)
-                validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-        }
-    }
-
- done:
-    sk_IPAddressFamily_free(child);
-    return ret;
+       if (x->rfc3779_addr != NULL) {
+               for (j = 0; j < sk_IPAddressFamily_num(x->rfc3779_addr); j++) {
+                       IPAddressFamily *fp =
+                           sk_IPAddressFamily_value(x->rfc3779_addr, j);
+                       if (fp->ipAddressChoice->type ==
+                           IPAddressChoice_inherit &&
+                           sk_IPAddressFamily_find(child, fp) >= 0)
+                               validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+               }
+       }
+
+done:
+       sk_IPAddressFamily_free(child);
+       return ret;
 }
 
 #undef validation_err
@@ -1471,31 +1507,33 @@ static int addr_validate_path_internal(X509_STORE_CTX *ctx,
 /*
  * RFC 3779 2.3 path validation -- called from X509_verify_cert().
  */
-int X509v3_addr_validate_path(X509_STORE_CTX *ctx)
+int
+X509v3_addr_validate_path(X509_STORE_CTX *ctx)
 {
-    if (ctx->chain == NULL
-            || sk_X509_num(ctx->chain) == 0
-            || ctx->verify_cb == NULL) {
-        ctx->error = X509_V_ERR_UNSPECIFIED;
-        return 0;
-    }
-    return addr_validate_path_internal(ctx, ctx->chain, NULL);
+       if (ctx->chain == NULL ||
+           sk_X509_num(ctx->chain) == 0 ||
+           ctx->verify_cb == NULL) {
+               ctx->error = X509_V_ERR_UNSPECIFIED;
+               return 0;
+       }
+       return addr_validate_path_internal(ctx, ctx->chain, NULL);
 }
 
 /*
  * RFC 3779 2.3 path validation of an extension.
  * Test whether chain covers extension.
  */
-int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain,
-                                  IPAddrBlocks *ext, int allow_inheritance)
+int
+X509v3_addr_validate_resource_set(STACK_OF(X509)*chain, IPAddrBlocks *ext,
+    int allow_inheritance)
 {
-    if (ext == NULL)
-        return 1;
-    if (chain == NULL || sk_X509_num(chain) == 0)
-        return 0;
-    if (!allow_inheritance && X509v3_addr_inherits(ext))
-        return 0;
-    return addr_validate_path_internal(NULL, chain, ext);
+       if (ext == NULL)
+               return 1;
+       if (chain == NULL || sk_X509_num(chain) == 0)
+               return 0;
+       if (!allow_inheritance && X509v3_addr_inherits(ext))
+               return 0;
+       return addr_validate_path_internal(NULL, chain, ext);
 }
 
 #endif                          /* OPENSSL_NO_RFC3779 */
index f5b5d86..d9c7fd1 100644 (file)
@@ -188,7 +188,8 @@ ASIdOrRange_free(ASIdOrRange *a)
 }
 
 ASIdentifierChoice *
-d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len)
+d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in,
+    long len)
 {
        return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
            (&(ASIdentifierChoice_it)));
@@ -198,7 +199,6 @@ int
 i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out)
 {
        return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifierChoice_it)));
-
 }
 
 ASIdentifierChoice *
@@ -226,12 +226,14 @@ i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out)
        return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifiers_it)));
 }
 
-ASIdentifiers *ASIdentifiers_new(void)
+ASIdentifiers *
+ASIdentifiers_new(void)
 {
        return (ASIdentifiers *)ASN1_item_new((&(ASIdentifiers_it)));
 }
 
-void ASIdentifiers_free(ASIdentifiers *a)
+void
+ASIdentifiers_free(ASIdentifiers *a)
 {
        ASN1_item_free((ASN1_VALUE *)a, (&(ASIdentifiers_it)));
 }
@@ -239,644 +241,672 @@ void ASIdentifiers_free(ASIdentifiers *a)
 /*
  * i2r method for an ASIdentifierChoice.
  */
-static int i2r_ASIdentifierChoice(BIO *out,
-                                  ASIdentifierChoice *choice,
-                                  int indent, const char *msg)
+static int
+i2r_ASIdentifierChoice(BIO *out, ASIdentifierChoice *choice, int indent,
+    const char *msg)
 {
-    int i;
-    char *s;
-    if (choice == NULL)
-        return 1;
-    BIO_printf(out, "%*s%s:\n", indent, "", msg);
-    switch (choice->type) {
-    case ASIdentifierChoice_inherit:
-        BIO_printf(out, "%*sinherit\n", indent + 2, "");
-        break;
-    case ASIdentifierChoice_asIdsOrRanges:
-        for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges); i++) {
-            ASIdOrRange *aor =
-                sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
-            switch (aor->type) {
-            case ASIdOrRange_id:
-                if ((s = i2s_ASN1_INTEGER(NULL, aor->u.id)) == NULL)
-                    return 0;
-                BIO_printf(out, "%*s%s\n", indent + 2, "", s);
-                free(s);
-                break;
-            case ASIdOrRange_range:
-                if ((s = i2s_ASN1_INTEGER(NULL, aor->u.range->min)) == NULL)
-                    return 0;
-                BIO_printf(out, "%*s%s-", indent + 2, "", s);
-                free(s);
-                if ((s = i2s_ASN1_INTEGER(NULL, aor->u.range->max)) == NULL)
-                    return 0;
-                BIO_printf(out, "%s\n", s);
-                free(s);
-                break;
-            default:
-                return 0;
-            }
-        }
-        break;
-    default:
-        return 0;
-    }
-    return 1;
+       int i;
+       char *s;
+       if (choice == NULL)
+               return 1;
+       BIO_printf(out, "%*s%s:\n", indent, "", msg);
+       switch (choice->type) {
+       case ASIdentifierChoice_inherit:
+               BIO_printf(out, "%*sinherit\n", indent + 2, "");
+               break;
+       case ASIdentifierChoice_asIdsOrRanges:
+               for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges);
+                   i++) {
+                       ASIdOrRange *aor =
+                           sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
+                       switch (aor->type) {
+                       case ASIdOrRange_id:
+                               if ((s = i2s_ASN1_INTEGER(NULL, aor->u.id)) ==
+                                   NULL)
+                                       return 0;
+                               BIO_printf(out, "%*s%s\n", indent + 2, "", s);
+                               free(s);
+                               break;
+                       case ASIdOrRange_range:
+                               if ((s = i2s_ASN1_INTEGER(NULL,
+                                   aor->u.range->min)) == NULL)
+                                       return 0;
+                               BIO_printf(out, "%*s%s-", indent + 2, "", s);
+                               free(s);
+                               if ((s = i2s_ASN1_INTEGER(NULL,
+                                   aor->u.range->max)) == NULL)
+                                       return 0;
+                               BIO_printf(out, "%s\n", s);
+                               free(s);
+                               break;
+                       default:
+                               return 0;
+                       }
+               }
+               break;
+       default:
+               return 0;
+       }
+       return 1;
 }
 
 /*
  * i2r method for an ASIdentifier extension.
  */
-static int i2r_ASIdentifiers(const X509V3_EXT_METHOD *method,
-                             void *ext, BIO *out, int indent)
+static int
+i2r_ASIdentifiers(const X509V3_EXT_METHOD *method, void *ext, BIO *out,
+    int indent)
 {
-    ASIdentifiers *asid = ext;
-    return (i2r_ASIdentifierChoice(out, asid->asnum, indent,
-                                   "Autonomous System Numbers") &&
-            i2r_ASIdentifierChoice(out, asid->rdi, indent,
-                                   "Routing Domain Identifiers"));
+       ASIdentifiers *asid = ext;
+       return (i2r_ASIdentifierChoice(out, asid->asnum, indent,
+           "Autonomous System Numbers") &&
+           i2r_ASIdentifierChoice(out, asid->rdi, indent,
+           "Routing Domain Identifiers"));
 }
 
 /*
  * Sort comparison function for a sequence of ASIdOrRange elements.
  */
-static int ASIdOrRange_cmp(const ASIdOrRange *const *a_,
-                           const ASIdOrRange *const *b_)
+static int
+ASIdOrRange_cmp(const ASIdOrRange *const *a_, const ASIdOrRange *const *b_)
 {
-    const ASIdOrRange *a = *a_, *b = *b_;
+       const ASIdOrRange *a = *a_, *b = *b_;
 
     /* XXX: these asserts need to be replaced */
-    OPENSSL_assert((a->type == ASIdOrRange_id && a->u.id != NULL) ||
-           (a->type == ASIdOrRange_range && a->u.range != NULL &&
-            a->u.range->min != NULL && a->u.range->max != NULL));
-
-    OPENSSL_assert((b->type == ASIdOrRange_id && b->u.id != NULL) ||
-           (b->type == ASIdOrRange_range && b->u.range != NULL &&
-            b->u.range->min != NULL && b->u.range->max != NULL));
-
-    if (a->type == ASIdOrRange_id && b->type == ASIdOrRange_id)
-        return ASN1_INTEGER_cmp(a->u.id, b->u.id);
-
-    if (a->type == ASIdOrRange_range && b->type == ASIdOrRange_range) {
-        int r = ASN1_INTEGER_cmp(a->u.range->min, b->u.range->min);
-        return r != 0 ? r : ASN1_INTEGER_cmp(a->u.range->max,
-                                             b->u.range->max);
-    }
-
-    if (a->type == ASIdOrRange_id)
-        return ASN1_INTEGER_cmp(a->u.id, b->u.range->min);
-    else
-        return ASN1_INTEGER_cmp(a->u.range->min, b->u.id);
+       OPENSSL_assert((a->type == ASIdOrRange_id && a->u.id != NULL) ||
+           (a->type == ASIdOrRange_range && a->u.range != NULL &&
+            a->u.range->min != NULL && a->u.range->max != NULL));
+
+       OPENSSL_assert((b->type == ASIdOrRange_id && b->u.id != NULL) ||
+           (b->type == ASIdOrRange_range && b->u.range != NULL &&
+            b->u.range->min != NULL && b->u.range->max != NULL));
+
+       if (a->type == ASIdOrRange_id && b->type == ASIdOrRange_id)
+               return ASN1_INTEGER_cmp(a->u.id, b->u.id);
+
+       if (a->type == ASIdOrRange_range && b->type == ASIdOrRange_range) {
+               int r = ASN1_INTEGER_cmp(a->u.range->min, b->u.range->min);
+               return r != 0 ? r : ASN1_INTEGER_cmp(a->u.range->max,
+                   b->u.range->max);
+       }
+
+       if (a->type == ASIdOrRange_id)
+               return ASN1_INTEGER_cmp(a->u.id, b->u.range->min);
+       else
+               return ASN1_INTEGER_cmp(a->u.range->min, b->u.id);
 }
 
 /*
  * Add an inherit element.
  */
-int X509v3_asid_add_inherit(ASIdentifiers *asid, int which)
+int
+X509v3_asid_add_inherit(ASIdentifiers *asid, int which)
 {
-    ASIdentifierChoice **choice;
-    if (asid == NULL)
-        return 0;
-    switch (which) {
-    case V3_ASID_ASNUM:
-        choice = &asid->asnum;
-        break;
-    case V3_ASID_RDI:
-        choice = &asid->rdi;
-        break;
-    default:
-        return 0;
-    }
-    if (*choice == NULL) {
-        if ((*choice = ASIdentifierChoice_new()) == NULL)
-            return 0;
-        if (((*choice)->u.inherit = ASN1_NULL_new()) == NULL)
-            return 0;
-        (*choice)->type = ASIdentifierChoice_inherit;
-    }
-    return (*choice)->type == ASIdentifierChoice_inherit;
+       ASIdentifierChoice **choice;
+       if (asid == NULL)
+               return 0;
+       switch (which) {
+       case V3_ASID_ASNUM:
+               choice = &asid->asnum;
+               break;
+       case V3_ASID_RDI:
+               choice = &asid->rdi;
+               break;
+       default:
+               return 0;
+       }
+       if (*choice == NULL) {
+               if ((*choice = ASIdentifierChoice_new()) == NULL)
+                       return 0;
+               if (((*choice)->u.inherit = ASN1_NULL_new()) == NULL)
+                       return 0;
+               (*choice)->type = ASIdentifierChoice_inherit;
+       }
+       return (*choice)->type == ASIdentifierChoice_inherit;
 }
 
 /*
  * Add an ID or range to an ASIdentifierChoice.
  */
-int X509v3_asid_add_id_or_range(ASIdentifiers *asid,
-                                int which, ASN1_INTEGER *min, ASN1_INTEGER *max)
+int
+X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, ASN1_INTEGER *min,
+    ASN1_INTEGER *max)
 {
-    ASIdentifierChoice **choice;
-    ASIdOrRange *aor;
-    if (asid == NULL)
-        return 0;
-    switch (which) {
-    case V3_ASID_ASNUM:
-        choice = &asid->asnum;
-        break;
-    case V3_ASID_RDI:
-        choice = &asid->rdi;
-        break;
-    default:
-        return 0;
-    }
-    if (*choice != NULL && (*choice)->type == ASIdentifierChoice_inherit)
-        return 0;
-    if (*choice == NULL) {
-        if ((*choice = ASIdentifierChoice_new()) == NULL)
-            return 0;
-        (*choice)->u.asIdsOrRanges = sk_ASIdOrRange_new(ASIdOrRange_cmp);
-        if ((*choice)->u.asIdsOrRanges == NULL)
-            return 0;
-        (*choice)->type = ASIdentifierChoice_asIdsOrRanges;
-    }
-    if ((aor = ASIdOrRange_new()) == NULL)
-        return 0;
-    if (max == NULL) {
-        aor->type = ASIdOrRange_id;
-        aor->u.id = min;
-    } else {
-        aor->type = ASIdOrRange_range;
-        if ((aor->u.range = ASRange_new()) == NULL)
-            goto err;
-        ASN1_INTEGER_free(aor->u.range->min);
-        aor->u.range->min = min;
-        ASN1_INTEGER_free(aor->u.range->max);
-        aor->u.range->max = max;
-    }
-    if (!(sk_ASIdOrRange_push((*choice)->u.asIdsOrRanges, aor)))
-        goto err;
-    return 1;
-
- err:
-    ASIdOrRange_free(aor);
-    return 0;
+       ASIdentifierChoice **choice;
+       ASIdOrRange *aor;
+       if (asid == NULL)
+               return 0;
+       switch (which) {
+       case V3_ASID_ASNUM:
+               choice = &asid->asnum;
+               break;
+       case V3_ASID_RDI:
+               choice = &asid->rdi;
+               break;
+       default:
+               return 0;
+       }
+       if (*choice != NULL && (*choice)->type == ASIdentifierChoice_inherit)
+               return 0;
+       if (*choice == NULL) {
+               if ((*choice = ASIdentifierChoice_new()) == NULL)
+                       return 0;
+               (*choice)->u.asIdsOrRanges = sk_ASIdOrRange_new(ASIdOrRange_cmp);
+               if ((*choice)->u.asIdsOrRanges == NULL)
+                       return 0;
+               (*choice)->type = ASIdentifierChoice_asIdsOrRanges;
+       }
+       if ((aor = ASIdOrRange_new()) == NULL)
+               return 0;
+       if (max == NULL) {
+               aor->type = ASIdOrRange_id;
+               aor->u.id = min;
+       } else {
+               aor->type = ASIdOrRange_range;
+               if ((aor->u.range = ASRange_new()) == NULL)
+                       goto err;
+               ASN1_INTEGER_free(aor->u.range->min);
+               aor->u.range->min = min;
+               ASN1_INTEGER_free(aor->u.range->max);
+               aor->u.range->max = max;
+       }
+       if (!(sk_ASIdOrRange_push((*choice)->u.asIdsOrRanges, aor)))
+               goto err;
+       return 1;
+
+err:
+       ASIdOrRange_free(aor);
+       return 0;
 }
 
 /*
  * Extract min and max values from an ASIdOrRange.
  */
-static int extract_min_max(ASIdOrRange *aor,
-                           ASN1_INTEGER **min, ASN1_INTEGER **max)
+static int
+extract_min_max(ASIdOrRange *aor, ASN1_INTEGER **min, ASN1_INTEGER **max)
 {
-    OPENSSL_assert(aor != NULL);
-
-    switch (aor->type) {
-    case ASIdOrRange_id:
-        *min = aor->u.id;
-        *max = aor->u.id;
-        return 1;
-    case ASIdOrRange_range:
-        *min = aor->u.range->min;
-        *max = aor->u.range->max;
-        return 1;
-    }
-
-    return 0;
+       OPENSSL_assert(aor != NULL);
+
+       switch (aor->type) {
+       case ASIdOrRange_id:
+               *min = aor->u.id;
+               *max = aor->u.id;
+               return 1;
+       case ASIdOrRange_range:
+               *min = aor->u.range->min;
+               *max = aor->u.range->max;
+               return 1;
+       }
+
+       return 0;
 }
 
 /*
  * Check whether an ASIdentifierChoice is in canonical form.
  */
-static int ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
+static int
+ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
 {
-    ASN1_INTEGER *a_max_plus_one = NULL;
-    ASN1_INTEGER *orig;
-    BIGNUM *bn = NULL;
-    int i, ret = 0;
+       ASN1_INTEGER *a_max_plus_one = NULL;
+       ASN1_INTEGER *orig;
+       BIGNUM *bn = NULL;
+       int i, ret = 0;
 
     /*
      * Empty element or inheritance is canonical.
      */
-    if (choice == NULL || choice->type == ASIdentifierChoice_inherit)
-        return 1;
+       if (choice == NULL || choice->type == ASIdentifierChoice_inherit)
+               return 1;
 
     /*
      * If not a list, or if empty list, it's broken.
      */
-    if (choice->type != ASIdentifierChoice_asIdsOrRanges ||
-        sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0)
-        return 0;
+       if (choice->type != ASIdentifierChoice_asIdsOrRanges ||
+           sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0)
+               return 0;
 
     /*
      * It's a list, check it.
      */
-    for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; i++) {
-        ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
-        ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i + 1);
-        ASN1_INTEGER *a_min = NULL, *a_max = NULL, *b_min = NULL, *b_max =
-            NULL;
-
-        if (!extract_min_max(a, &a_min, &a_max)
-                || !extract_min_max(b, &b_min, &b_max))
-            goto done;
+       for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; i++) {
+               ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i);
+               ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i + 1);
+               ASN1_INTEGER *a_min = NULL,
+               *a_max = NULL,
+               *b_min = NULL,
+               *b_max =
+                   NULL;
+
+               if (!extract_min_max(a, &a_min, &a_max) ||
+                   !extract_min_max(b, &b_min, &b_max))
+                       goto done;
 
         /*
          * Punt misordered list, overlapping start, or inverted range.
          */
-        if (ASN1_INTEGER_cmp(a_min, b_min) >= 0 ||
-            ASN1_INTEGER_cmp(a_min, a_max) > 0 ||
-            ASN1_INTEGER_cmp(b_min, b_max) > 0)
-            goto done;
+               if (ASN1_INTEGER_cmp(a_min, b_min) >= 0 ||
+                   ASN1_INTEGER_cmp(a_min, a_max) > 0 ||
+                   ASN1_INTEGER_cmp(b_min, b_max) > 0)
+                       goto done;
 
         /*
          * Calculate a_max + 1 to check for adjacency.
          */
-        if ((bn == NULL && (bn = BN_new()) == NULL) ||
-            ASN1_INTEGER_to_BN(a_max, bn) == NULL ||
-            !BN_add_word(bn, 1)) {
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto done;
-        }
-
-        if ((a_max_plus_one =
-                BN_to_ASN1_INTEGER(bn, orig = a_max_plus_one)) == NULL) {
-            a_max_plus_one = orig;
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto done;
-        }
+               if ((bn == NULL && (bn = BN_new()) == NULL) ||
+                   ASN1_INTEGER_to_BN(a_max, bn) == NULL ||
+                   !BN_add_word(bn, 1)) {
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto done;
+               }
+
+               if ((a_max_plus_one =
+                   BN_to_ASN1_INTEGER(bn, orig = a_max_plus_one)) == NULL) {
+                       a_max_plus_one = orig;
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto done;
+               }
 
         /*
          * Punt if adjacent or overlapping.
          */
-        if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) >= 0)
-            goto done;
-    }
+               if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) >= 0)
+                       goto done;
+       }
 
     /*
      * Check for inverted range.
      */
-    i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
-    {
-        ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
-        ASN1_INTEGER *a_min, *a_max;
-        if (a != NULL && a->type == ASIdOrRange_range) {
-            if (!extract_min_max(a, &a_min, &a_max)
-                    || ASN1_INTEGER_cmp(a_min, a_max) > 0)
-                goto done;
-        }
-    }
-
-    ret = 1;
-
- done:
-    ASN1_INTEGER_free(a_max_plus_one);
-    BN_free(bn);
-    return ret;
+       i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
+       {
+               ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i);
+               ASN1_INTEGER *a_min, *a_max;
+               if (a != NULL && a->type == ASIdOrRange_range) {
+                       if (!extract_min_max(a, &a_min, &a_max) ||
+                           ASN1_INTEGER_cmp(a_min, a_max) > 0)
+                               goto done;
+               }
+       }
+
+       ret = 1;
+
+done:
+       ASN1_INTEGER_free(a_max_plus_one);
+       BN_free(bn);
+       return ret;
 }
 
 /*
  * Check whether an ASIdentifier extension is in canonical form.
  */
-int X509v3_asid_is_canonical(ASIdentifiers *asid)
+int
+X509v3_asid_is_canonical(ASIdentifiers *asid)
 {
-    return (asid == NULL ||
-            (ASIdentifierChoice_is_canonical(asid->asnum) &&
-             ASIdentifierChoice_is_canonical(asid->rdi)));
+       return (asid == NULL ||
+           (ASIdentifierChoice_is_canonical(asid->asnum) &&
+            ASIdentifierChoice_is_canonical(asid->rdi)));
 }
 
 /*
  * Whack an ASIdentifierChoice into canonical form.
  */
-static int ASIdentifierChoice_canonize(ASIdentifierChoice *choice)
+static int
+ASIdentifierChoice_canonize(ASIdentifierChoice *choice)
 {
-    ASN1_INTEGER *a_max_plus_one = NULL;
-    ASN1_INTEGER *orig;
-    BIGNUM *bn = NULL;
-    int i, ret = 0;
+       ASN1_INTEGER *a_max_plus_one = NULL;
+       ASN1_INTEGER *orig;
+       BIGNUM *bn = NULL;
+       int i, ret = 0;
 
     /*
      * Nothing to do for empty element or inheritance.
      */
-    if (choice == NULL || choice->type == ASIdentifierChoice_inherit)
-        return 1;
+       if (choice == NULL || choice->type == ASIdentifierChoice_inherit)
+               return 1;
 
     /*
      * If not a list, or if empty list, it's broken.
      */
-    if (choice->type != ASIdentifierChoice_asIdsOrRanges ||
-        sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0) {
-        X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-        return 0;
-    }
+       if (choice->type != ASIdentifierChoice_asIdsOrRanges ||
+           sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0) {
+               X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+               return 0;
+       }
 
     /*
      * We have a non-empty list.  Sort it.
      */
-    sk_ASIdOrRange_sort(choice->u.asIdsOrRanges);
+       sk_ASIdOrRange_sort(choice->u.asIdsOrRanges);
 
     /*
      * Now check for errors and suboptimal encoding, rejecting the
      * former and fixing the latter.
      */
-    for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; i++) {
-        ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
-        ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i + 1);
-        ASN1_INTEGER *a_min = NULL, *a_max = NULL, *b_min = NULL, *b_max =
-            NULL;
-
-        if (!extract_min_max(a, &a_min, &a_max)
-                || !extract_min_max(b, &b_min, &b_max))
-            goto done;
+       for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; i++) {
+               ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i);
+               ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i + 1);
+               ASN1_INTEGER *a_min = NULL,
+               *a_max = NULL,
+               *b_min = NULL,
+               *b_max =
+                   NULL;
+
+               if (!extract_min_max(a, &a_min, &a_max) ||
+                   !extract_min_max(b, &b_min, &b_max))
+                       goto done;
 
         /*
          * Make sure we're properly sorted (paranoia).
          */
-        OPENSSL_assert(ASN1_INTEGER_cmp(a_min, b_min) <= 0);
+               OPENSSL_assert(ASN1_INTEGER_cmp(a_min, b_min) <= 0);
 
         /*
          * Punt inverted ranges.
          */
-        if (ASN1_INTEGER_cmp(a_min, a_max) > 0 ||
-            ASN1_INTEGER_cmp(b_min, b_max) > 0)
-            goto done;
+               if (ASN1_INTEGER_cmp(a_min, a_max) > 0 ||
+                   ASN1_INTEGER_cmp(b_min, b_max) > 0)
+                       goto done;
 
         /*
          * Check for overlaps.
          */
-        if (ASN1_INTEGER_cmp(a_max, b_min) >= 0) {
-            X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-            goto done;
-        }
+               if (ASN1_INTEGER_cmp(a_max, b_min) >= 0) {
+                       X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                       goto done;
+               }
 
         /*
          * Calculate a_max + 1 to check for adjacency.
          */
-        if ((bn == NULL && (bn = BN_new()) == NULL) ||
-            ASN1_INTEGER_to_BN(a_max, bn) == NULL ||
-            !BN_add_word(bn, 1)) {
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto done;
-        }
-
-        if ((a_max_plus_one =
-                 BN_to_ASN1_INTEGER(bn, orig = a_max_plus_one)) == NULL) {
-            a_max_plus_one = orig;
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto done;
-        }
+               if ((bn == NULL && (bn = BN_new()) == NULL) ||
+                   ASN1_INTEGER_to_BN(a_max, bn) == NULL ||
+                   !BN_add_word(bn, 1)) {
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto done;
+               }
+
+               if ((a_max_plus_one =
+                   BN_to_ASN1_INTEGER(bn, orig = a_max_plus_one)) == NULL) {
+                       a_max_plus_one = orig;
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto done;
+               }
 
         /*
          * If a and b are adjacent, merge them.
          */
-        if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) == 0) {
-            ASRange *r;
-            switch (a->type) {
-            case ASIdOrRange_id:
-                if ((r = calloc(1, sizeof(*r))) == NULL) {
-                    X509V3error(ERR_R_MALLOC_FAILURE);
-                    goto done;
-                }
-                r->min = a_min;
-                r->max = b_max;
-                a->type = ASIdOrRange_range;
-                a->u.range = r;
-                break;
-            case ASIdOrRange_range:
-                ASN1_INTEGER_free(a->u.range->max);
-                a->u.range->max = b_max;
-                break;
-            }
-            switch (b->type) {
-            case ASIdOrRange_id:
-                b->u.id = NULL;
-                break;
-            case ASIdOrRange_range:
-                b->u.range->max = NULL;
-                break;
-            }
-            ASIdOrRange_free(b);
-            (void)sk_ASIdOrRange_delete(choice->u.asIdsOrRanges, i + 1);
-            i--;
-            continue;
-        }
-    }
+               if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) == 0) {
+                       ASRange *r;
+                       switch (a->type) {
+                       case ASIdOrRange_id:
+                               if ((r = calloc(1, sizeof(*r))) == NULL) {
+                                       X509V3error(ERR_R_MALLOC_FAILURE);
+                                       goto done;
+                               }
+                               r->min = a_min;
+                               r->max = b_max;
+                               a->type = ASIdOrRange_range;
+                               a->u.range = r;
+                               break;
+                       case ASIdOrRange_range:
+                               ASN1_INTEGER_free(a->u.range->max);
+                               a->u.range->max = b_max;
+                               break;
+                       }
+                       switch (b->type) {
+                       case ASIdOrRange_id:
+                               b->u.id = NULL;
+                               break;
+                       case ASIdOrRange_range:
+                               b->u.range->max = NULL;
+                               break;
+                       }
+                       ASIdOrRange_free(b);
+                       (void)sk_ASIdOrRange_delete(choice->u.asIdsOrRanges,
+                           i + 1);
+                       i--;
+                       continue;
+               }
+       }
 
     /*
      * Check for final inverted range.
      */
-    i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
-    {
-        ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
-        ASN1_INTEGER *a_min, *a_max;
-        if (a != NULL && a->type == ASIdOrRange_range) {
-            if (!extract_min_max(a, &a_min, &a_max)
-                    || ASN1_INTEGER_cmp(a_min, a_max) > 0)
-                goto done;
-        }
-    }
+       i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
+       {
+               ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges,
+                   i);
+               ASN1_INTEGER *a_min, *a_max;
+               if (a != NULL && a->type == ASIdOrRange_range) {
+                       if (!extract_min_max(a, &a_min, &a_max) ||
+                           ASN1_INTEGER_cmp(a_min, a_max) > 0)
+                               goto done;
+               }
+       }
 
     /* Paranoia */
-    OPENSSL_assert(ASIdentifierChoice_is_canonical(choice));
+       OPENSSL_assert(ASIdentifierChoice_is_canonical(choice));
 
-    ret = 1;
+       ret = 1;
 
- done:
-    ASN1_INTEGER_free(a_max_plus_one);
-    BN_free(bn);
-    return ret;
+done:
+       ASN1_INTEGER_free(a_max_plus_one);
+       BN_free(bn);
+       return ret;
 }
 
 /*
  * Whack an ASIdentifier extension into canonical form.
  */
-int X509v3_asid_canonize(ASIdentifiers *asid)
+int
+X509v3_asid_canonize(ASIdentifiers *asid)
 {
-    return (asid == NULL ||
-            (ASIdentifierChoice_canonize(asid->asnum) &&
-             ASIdentifierChoice_canonize(asid->rdi)));
+       return (asid == NULL ||
+           (ASIdentifierChoice_canonize(asid->asnum) &&
+            ASIdentifierChoice_canonize(asid->rdi)));
 }
 
 /*
  * v2i method for an ASIdentifier extension.
  */
-static void *v2i_ASIdentifiers(const struct v3_ext_method *method,
-                               struct v3_ext_ctx *ctx,
-                               STACK_OF(CONF_VALUE) *values)
+static void *
+v2i_ASIdentifiers(const struct v3_ext_method *method, struct v3_ext_ctx *ctx,
+    STACK_OF(CONF_VALUE)*values)
 {
-    ASN1_INTEGER *min = NULL, *max = NULL;
-    ASIdentifiers *asid = NULL;
-    int i;
+       ASN1_INTEGER *min = NULL, *max = NULL;
+       ASIdentifiers *asid = NULL;
+       int i;
 
-    if ((asid = ASIdentifiers_new()) == NULL) {
-        X509V3error(ERR_R_MALLOC_FAILURE);
-        return NULL;
-    }
+       if ((asid = ASIdentifiers_new()) == NULL) {
+               X509V3error(ERR_R_MALLOC_FAILURE);
+               return NULL;
+       }
 
-    for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
-        CONF_VALUE *val = sk_CONF_VALUE_value(values, i);
-        int i1 = 0, i2 = 0, i3 = 0, is_range = 0, which = 0;
+       for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
+               CONF_VALUE *val = sk_CONF_VALUE_value(values, i);
+               int i1 = 0, i2 = 0, i3 = 0, is_range = 0, which = 0;
 
         /*
          * Figure out whether this is an AS or an RDI.
          */
-        if (!name_cmp(val->name, "AS")) {
-            which = V3_ASID_ASNUM;
-        } else if (!name_cmp(val->name, "RDI")) {
-            which = V3_ASID_RDI;
-        } else {
-            X509V3error(X509V3_R_EXTENSION_NAME_ERROR);
-            X509V3_conf_err(val);
-            goto err;
-        }
+               if (!name_cmp(val->name, "AS")) {
+                       which = V3_ASID_ASNUM;
+               } else if (!name_cmp(val->name, "RDI")) {
+                       which = V3_ASID_RDI;
+               } else {
+                       X509V3error(X509V3_R_EXTENSION_NAME_ERROR);
+                       X509V3_conf_err(val);
+                       goto err;
+               }
 
         /*
          * Handle inheritance.
          */
-        if (strcmp(val->value, "inherit") == 0) {
-            if (X509v3_asid_add_inherit(asid, which))
-                continue;
-            X509V3error(X509V3_R_INVALID_INHERITANCE);
-            X509V3_conf_err(val);
-            goto err;
-        }
+               if (strcmp(val->value, "inherit") == 0) {
+                       if (X509v3_asid_add_inherit(asid, which))
+                               continue;
+                       X509V3error(X509V3_R_INVALID_INHERITANCE);
+                       X509V3_conf_err(val);
+                       goto err;
+               }
 
         /*
          * Number, range, or mistake, pick it apart and figure out which.
          */
-        i1 = strspn(val->value, "0123456789");
-        if (val->value[i1] == '\0') {
-            is_range = 0;
-        } else {
-            is_range = 1;
-            i2 = i1 + strspn(val->value + i1, " \t");
-            if (val->value[i2] != '-') {
-                X509V3error(X509V3_R_INVALID_ASNUMBER);
-                X509V3_conf_err(val);
-                goto err;
-            }
-            i2++;
-            i2 = i2 + strspn(val->value + i2, " \t");
-            i3 = i2 + strspn(val->value + i2, "0123456789");
-            if (val->value[i3] != '\0') {
-                X509V3error(X509V3_R_INVALID_ASRANGE);
-                X509V3_conf_err(val);
-                goto err;
-            }
-        }
+               i1 = strspn(val->value, "0123456789");
+               if (val->value[i1] == '\0') {
+                       is_range = 0;
+               } else {
+                       is_range = 1;
+                       i2 = i1 + strspn(val->value + i1, " \t");
+                       if (val->value[i2] != '-') {
+                               X509V3error(X509V3_R_INVALID_ASNUMBER);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+                       i2++;
+                       i2 = i2 + strspn(val->value + i2, " \t");
+                       i3 = i2 + strspn(val->value + i2, "0123456789");
+                       if (val->value[i3] != '\0') {
+                               X509V3error(X509V3_R_INVALID_ASRANGE);
+                               X509V3_conf_err(val);
+                               goto err;
+                       }
+               }
 
         /*
          * Syntax is ok, read and add it.
          */
-        if (!is_range) {
-            if (!X509V3_get_value_int(val, &min)) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-        } else {
-            char *s = strdup(val->value);
-            if (s == NULL) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-            s[i1] = '\0';
-            min = s2i_ASN1_INTEGER(NULL, s);
-            max = s2i_ASN1_INTEGER(NULL, s + i2);
-            free(s);
-            if (min == NULL || max == NULL) {
-                X509V3error(ERR_R_MALLOC_FAILURE);
-                goto err;
-            }
-            if (ASN1_INTEGER_cmp(min, max) > 0) {
-                X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
-                goto err;
-            }
-        }
-        if (!X509v3_asid_add_id_or_range(asid, which, min, max)) {
-            X509V3error(ERR_R_MALLOC_FAILURE);
-            goto err;
-        }
-        min = max = NULL;
-    }
+               if (!is_range) {
+                       if (!X509V3_get_value_int(val, &min)) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+               } else {
+                       char *s = strdup(val->value);
+                       if (s == NULL) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+                       s[i1] = '\0';
+                       min = s2i_ASN1_INTEGER(NULL, s);
+                       max = s2i_ASN1_INTEGER(NULL, s + i2);
+                       free(s);
+                       if (min == NULL || max == NULL) {
+                               X509V3error(ERR_R_MALLOC_FAILURE);
+                               goto err;
+                       }
+                       if (ASN1_INTEGER_cmp(min, max) > 0) {
+                               X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
+                               goto err;
+                       }
+               }
+               if (!X509v3_asid_add_id_or_range(asid, which, min, max)) {
+                       X509V3error(ERR_R_MALLOC_FAILURE);
+                       goto err;
+               }
+               min = max = NULL;
+       }
 
     /*
      * Canonize the result, then we're done.
      */
-    if (!X509v3_asid_canonize(asid))
-        goto err;
-    return asid;
-
- err:
-    ASIdentifiers_free(asid);
-    ASN1_INTEGER_free(min);
-    ASN1_INTEGER_free(max);
-    return NULL;
+       if (!X509v3_asid_canonize(asid))
+               goto err;
+       return asid;
+
+err:
+       ASIdentifiers_free(asid);
+       ASN1_INTEGER_free(min);
+       ASN1_INTEGER_free(max);
+       return NULL;
 }
 
 /*
  * OpenSSL dispatch.
  */
 const X509V3_EXT_METHOD v3_asid = {
-    NID_sbgp_autonomousSysNum,  /* nid */
-    0,                          /* flags */
-    &ASIdentifiers_it,          /* template */
-    0, 0, 0, 0,                 /* old functions, ignored */
-    0,                          /* i2s */
-    0,                          /* s2i */
-    0,                          /* i2v */
-    v2i_ASIdentifiers,          /* v2i */
-    i2r_ASIdentifiers,          /* i2r */
-    0,                          /* r2i */
-    NULL                        /* extension-specific data */
+       NID_sbgp_autonomousSysNum,  /* nid */
+       0,                          /* flags */
+       &ASIdentifiers_it,          /* template */
+       0, 0, 0, 0,                 /* old functions, ignored */
+       0,                          /* i2s */
+       0,                          /* s2i */
+       0,                          /* i2v */
+       v2i_ASIdentifiers,          /* v2i */
+       i2r_ASIdentifiers,          /* i2r */
+       0,                          /* r2i */
+       NULL                        /* extension-specific data */
 };
 
 /*
  * Figure out whether extension uses inheritance.
  */
-int X509v3_asid_inherits(ASIdentifiers *asid)
+int
+X509v3_asid_inherits(ASIdentifiers *asid)
 {
-    return (asid != NULL &&
-            ((asid->asnum != NULL &&
-              asid->asnum->type == ASIdentifierChoice_inherit) ||
-             (asid->rdi != NULL &&
-              asid->rdi->type == ASIdentifierChoice_inherit)));
+       return (asid != NULL &&
+           ((asid->asnum != NULL &&
+             asid->asnum->type == ASIdentifierChoice_inherit) ||
+            (asid->rdi != NULL &&
+             asid->rdi->type == ASIdentifierChoice_inherit)));
 }
 
 /*
  * Figure out whether parent contains child.
  */
-static int asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child)
+static int
+asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child)
 {
-    ASN1_INTEGER *p_min = NULL, *p_max = NULL, *c_min = NULL, *c_max = NULL;
-    int p, c;
-
-    if (child == NULL || parent == child)
-        return 1;
-    if (parent == NULL)
-        return 0;
-
-    p = 0;
-    for (c = 0; c < sk_ASIdOrRange_num(child); c++) {
-        if (!extract_min_max(sk_ASIdOrRange_value(child, c), &c_min, &c_max))
-            return 0;
-        for (;; p++) {
-            if (p >= sk_ASIdOrRange_num(parent))
-                return 0;
-            if (!extract_min_max(sk_ASIdOrRange_value(parent, p), &p_min,
-                                 &p_max))
-                return 0;
-            if (ASN1_INTEGER_cmp(p_max, c_max) < 0)
-                continue;
-            if (ASN1_INTEGER_cmp(p_min, c_min) > 0)
-                return 0;
-            break;
-        }
-    }
-
-    return 1;
+       ASN1_INTEGER *p_min = NULL, *p_max = NULL, *c_min = NULL, *c_max = NULL;
+       int p, c;
+
+       if (child == NULL || parent == child)
+               return 1;
+       if (parent == NULL)
+               return 0;
+
+       p = 0;
+       for (c = 0; c < sk_ASIdOrRange_num(child); c++) {
+               if (!extract_min_max(sk_ASIdOrRange_value(child, c), &c_min,
+                   &c_max))
+                       return 0;
+               for (;; p++) {
+                       if (p >= sk_ASIdOrRange_num(parent))
+                               return 0;
+                       if (!extract_min_max(sk_ASIdOrRange_value(parent, p),
+                           &p_min, &p_max))
+                               return 0;
+                       if (ASN1_INTEGER_cmp(p_max, c_max) < 0)
+                               continue;
+                       if (ASN1_INTEGER_cmp(p_min, c_min) > 0)
+                               return 0;
+                       break;
+               }
+       }
+
+       return 1;
 }
 
 /*
  * Test whether a is a subset of b.
  */
-int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
+int
+X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
 {
-    return (a == NULL ||
-            a == b ||
-            (b != NULL &&
-             !X509v3_asid_inherits(a) &&
-             !X509v3_asid_inherits(b) &&
-             asid_contains(b->asnum->u.asIdsOrRanges,
-                           a->asnum->u.asIdsOrRanges) &&
-             asid_contains(b->rdi->u.asIdsOrRanges,
-                           a->rdi->u.asIdsOrRanges)));
+       return (a == NULL ||
+           a == b ||
+           (b != NULL &&
+            !X509v3_asid_inherits(a) &&
+            !X509v3_asid_inherits(b) &&
+            asid_contains(b->asnum->u.asIdsOrRanges,
+            a->asnum->u.asIdsOrRanges) &&
+            asid_contains(b->rdi->u.asIdsOrRanges,
+            a->rdi->u.asIdsOrRanges)));
 }
 
 /*
@@ -899,121 +929,121 @@ int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
 /*
  * Core code for RFC 3779 3.3 path validation.
  */
-static int asid_validate_path_internal(X509_STORE_CTX *ctx,
-                                       STACK_OF(X509) *chain,
-                                       ASIdentifiers *ext)
+static int
+asid_validate_path_internal(X509_STORE_CTX *ctx, STACK_OF(X509)*chain,
+    ASIdentifiers *ext)
 {
-    ASIdOrRanges *child_as = NULL, *child_rdi = NULL;
-    int i, ret = 1, inherit_as = 0, inherit_rdi = 0;
-    X509 *x;
+       ASIdOrRanges *child_as = NULL, *child_rdi = NULL;
+       int i, ret = 1, inherit_as = 0, inherit_rdi = 0;
+       X509 *x;
 
-    OPENSSL_assert(chain != NULL && sk_X509_num(chain) > 0);
-    OPENSSL_assert(ctx != NULL || ext != NULL);
-    OPENSSL_assert(ctx == NULL || ctx->verify_cb != NULL);
+       OPENSSL_assert(chain != NULL && sk_X509_num(chain) > 0);
+       OPENSSL_assert(ctx != NULL || ext != NULL);
+       OPENSSL_assert(ctx == NULL || ctx->verify_cb != NULL);
 
     /*
      * Figure out where to start.  If we don't have an extension to
      * check, we're done.  Otherwise, check canonical form and
      * set up for walking up the chain.
      */
-    if (ext != NULL) {
-        i = -1;
-        x = NULL;
-    } else {
-        i = 0;
-        x = sk_X509_value(chain, i);
-        if ((ext = x->rfc3779_asid) == NULL)
-            goto done;
-    }
-    if (!X509v3_asid_is_canonical(ext))
-        validation_err(X509_V_ERR_INVALID_EXTENSION);
-    if (ext->asnum != NULL) {
-        switch (ext->asnum->type) {
-        case ASIdentifierChoice_inherit:
-            inherit_as = 1;
-            break;
-        case ASIdentifierChoice_asIdsOrRanges:
-            child_as = ext->asnum->u.asIdsOrRanges;
-            break;
-        }
-    }
-    if (ext->rdi != NULL) {
-        switch (ext->rdi->type) {
-        case ASIdentifierChoice_inherit:
-            inherit_rdi = 1;
-            break;
-        case ASIdentifierChoice_asIdsOrRanges:
-            child_rdi = ext->rdi->u.asIdsOrRanges;
-            break;
-        }
-    }
+       if (ext != NULL) {
+               i = -1;
+               x = NULL;
+       } else {
+               i = 0;
+               x = sk_X509_value(chain, i);
+               if ((ext = x->rfc3779_asid) == NULL)
+                       goto done;
+       }
+       if (!X509v3_asid_is_canonical(ext))
+               validation_err(X509_V_ERR_INVALID_EXTENSION);
+       if (ext->asnum != NULL) {
+               switch (ext->asnum->type) {
+               case ASIdentifierChoice_inherit:
+                       inherit_as = 1;
+                       break;
+               case ASIdentifierChoice_asIdsOrRanges:
+                       child_as = ext->asnum->u.asIdsOrRanges;
+                       break;
+               }
+       }
+       if (ext->rdi != NULL) {
+               switch (ext->rdi->type) {
+               case ASIdentifierChoice_inherit:
+                       inherit_rdi = 1;
+                       break;
+               case ASIdentifierChoice_asIdsOrRanges:
+                       child_rdi = ext->rdi->u.asIdsOrRanges;
+                       break;
+               }
+       }
 
     /*
      * Now walk up the chain.  Extensions must be in canonical form, no
      * cert may list resources that its parent doesn't list.
      */
-    for (i++; i < sk_X509_num(chain); i++) {
-        x = sk_X509_value(chain, i);
-        OPENSSL_assert(x != NULL);
-
-        if (x->rfc3779_asid == NULL) {
-            if (child_as != NULL || child_rdi != NULL)
-                validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            continue;
-        }
-        if (!X509v3_asid_is_canonical(x->rfc3779_asid))
-            validation_err(X509_V_ERR_INVALID_EXTENSION);
-        if (x->rfc3779_asid->asnum == NULL && child_as != NULL) {
-            validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            child_as = NULL;
-            inherit_as = 0;
-        }
-        if (x->rfc3779_asid->asnum != NULL &&
-            x->rfc3779_asid->asnum->type ==
-            ASIdentifierChoice_asIdsOrRanges) {
-            if (inherit_as
-                || asid_contains(x->rfc3779_asid->asnum->u.asIdsOrRanges,
-                                 child_as)) {
-                child_as = x->rfc3779_asid->asnum->u.asIdsOrRanges;
-                inherit_as = 0;
-            } else {
-                validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            }
-        }
-        if (x->rfc3779_asid->rdi == NULL && child_rdi != NULL) {
-            validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            child_rdi = NULL;
-            inherit_rdi = 0;
-        }
-        if (x->rfc3779_asid->rdi != NULL &&
-            x->rfc3779_asid->rdi->type == ASIdentifierChoice_asIdsOrRanges) {
-            if (inherit_rdi ||
-                asid_contains(x->rfc3779_asid->rdi->u.asIdsOrRanges,
-                              child_rdi)) {
-                child_rdi = x->rfc3779_asid->rdi->u.asIdsOrRanges;
-                inherit_rdi = 0;
-            } else {
-                validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-            }
-        }
-    }
+       for (i++; i < sk_X509_num(chain); i++) {
+               x = sk_X509_value(chain, i);
+               OPENSSL_assert(x != NULL);
+
+               if (x->rfc3779_asid == NULL) {
+                       if (child_as != NULL || child_rdi != NULL)
+                               validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       continue;
+               }
+               if (!X509v3_asid_is_canonical(x->rfc3779_asid))
+                       validation_err(X509_V_ERR_INVALID_EXTENSION);
+               if (x->rfc3779_asid->asnum == NULL && child_as != NULL) {
+                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       child_as = NULL;
+                       inherit_as = 0;
+               }
+               if (x->rfc3779_asid->asnum != NULL &&
+                   x->rfc3779_asid->asnum->type ==
+                   ASIdentifierChoice_asIdsOrRanges) {
+                       if (inherit_as ||
+                           asid_contains(x->rfc3779_asid->asnum->u.asIdsOrRanges,
+                           child_as)) {
+                               child_as = x->rfc3779_asid->asnum->u.asIdsOrRanges;
+                               inherit_as = 0;
+                       } else {
+                               validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       }
+               }
+               if (x->rfc3779_asid->rdi == NULL && child_rdi != NULL) {
+                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       child_rdi = NULL;
+                       inherit_rdi = 0;
+               }
+               if (x->rfc3779_asid->rdi != NULL &&
+                   x->rfc3779_asid->rdi->type == ASIdentifierChoice_asIdsOrRanges) {
+                       if (inherit_rdi ||
+                           asid_contains(x->rfc3779_asid->rdi->u.asIdsOrRanges,
+                           child_rdi)) {
+                               child_rdi = x->rfc3779_asid->rdi->u.asIdsOrRanges;
+                               inherit_rdi = 0;
+                       } else {
+                               validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+                       }
+               }
+       }
 
     /*
      * Trust anchor can't inherit.
      */
-    OPENSSL_assert(x != NULL);
-
-    if (x->rfc3779_asid != NULL) {
-        if (x->rfc3779_asid->asnum != NULL &&
-            x->rfc3779_asid->asnum->type == ASIdentifierChoice_inherit)
-            validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-        if (x->rfc3779_asid->rdi != NULL &&
-            x->rfc3779_asid->rdi->type == ASIdentifierChoice_inherit)
-            validation_err(X509_V_ERR_UNNESTED_RESOURCE);
-    }
-
- done:
-    return ret;
+       OPENSSL_assert(x != NULL);
+
+       if (x->rfc3779_asid != NULL) {
+               if (x->rfc3779_asid->asnum != NULL &&
+                   x->rfc3779_asid->asnum->type == ASIdentifierChoice_inherit)
+                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+               if (x->rfc3779_asid->rdi != NULL &&
+                   x->rfc3779_asid->rdi->type == ASIdentifierChoice_inherit)
+                       validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+       }
+
+done:
+       return ret;
 }
 
 #undef validation_err
@@ -1021,31 +1051,33 @@ static int asid_validate_path_internal(X509_STORE_CTX *ctx,
 /*
  * RFC 3779 3.3 path validation -- called from X509_verify_cert().
  */
-int X509v3_asid_validate_path(X509_STORE_CTX *ctx)
+int
+X509v3_asid_validate_path(X509_STORE_CTX *ctx)
 {
-    if (ctx->chain == NULL
-            || sk_X509_num(ctx->chain) == 0
-            || ctx->verify_cb == NULL) {
-        ctx->error = X509_V_ERR_UNSPECIFIED;
-        return 0;
-    }
-    return asid_validate_path_internal(ctx, ctx->chain, NULL);
+       if (ctx->chain == NULL ||
+           sk_X509_num(ctx->chain) == 0 ||
+           ctx->verify_cb == NULL) {
+               ctx->error = X509_V_ERR_UNSPECIFIED;
+               return 0;
+       }
+       return asid_validate_path_internal(ctx, ctx->chain, NULL);
 }
 
 /*
  * RFC 3779 3.3 path validation of an extension.
  * Test whether chain covers extension.
  */
-int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain,
-                                      ASIdentifiers *ext, int allow_inheritance)
+int
+X509v3_asid_validate_resource_set(STACK_OF(X509)*chain, ASIdentifiers *ext,
+    int allow_inheritance)
 {
-    if (ext == NULL)
-        return 1;
-    if (chain == NULL || sk_X509_num(chain) == 0)
-        return 0;
-    if (!allow_inheritance && X509v3_asid_inherits(ext))
-        return 0;
-    return asid_validate_path_internal(NULL, chain, ext);
+       if (ext == NULL)
+               return 1;
+       if (chain == NULL || sk_X509_num(chain) == 0)
+               return 0;
+       if (!allow_inheritance && X509v3_asid_inherits(ext))
+               return 0;
+       return asid_validate_path_internal(NULL, chain, ext);
 }
 
 #endif                          /* OPENSSL_NO_RFC3779 */