#include <openssl/conf.h>
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
+#include <openssl/buffer.h>
#include <openssl/x509v3.h>
-#ifdef OPENSSL_RFC3779
+#ifndef OPENSSL_NO_RFC3779
/*
* OpenSSL ASN.1 template translation of RFC 3779 2.2.3.
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++)
/*
* i2r handler for an IPAddrBlocks extension.
*/
-static int i2r_IPAddrBlocks(X509V3_EXT_METHOD *method,
+static int i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,
void *ext,
BIO *out,
int indent)
v3_addr_get_afi(f)))
return 0;
}
+ sk_IPAddressFamily_set_cmp_func(addr, IPAddressFamily_cmp);
sk_IPAddressFamily_sort(addr);
assert(v3_addr_is_canonical(addr));
return 1;
/*
* v2i handler for the IPAddrBlocks extension.
*/
-static void *v2i_IPAddrBlocks(struct v3_ext_method *method,
+static void *v2i_IPAddrBlocks(const struct v3_ext_method *method,
struct v3_ext_ctx *ctx,
STACK_OF(CONF_VALUE) *values)
{
length = length_from_afi(afi);
/*
- * Handle SAFI, if any, and strdup() so we can null-terminate
+ * Handle SAFI, if any, and BUF_strdup() so we can null-terminate
* the other input values.
*/
if (safi != NULL) {
goto err;
}
t += strspn(t, " \t");
- s = strdup(t);
+ s = BUF_strdup(t);
} else {
- s = strdup(val->value);
+ s = BUF_strdup(val->value);
}
if (s == NULL) {
X509V3err(X509V3_F_V2I_IPADDRBLOCKS, ERR_R_MALLOC_FAILURE);
/*
* OpenSSL dispatch
*/
-X509V3_EXT_METHOD v3_addr = {
+const X509V3_EXT_METHOD v3_addr = {
NID_sbgp_ipAddrBlock, /* nid */
0, /* flags */
ASN1_ITEM_ref(IPAddrBlocks), /* template */
return v3_addr_validate_path_internal(NULL, chain, ext);
}
-#endif /* OPENSSL_RFC3779 */
+#endif /* OPENSSL_NO_RFC3779 */