aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2006-07-26 23:40:31 +0000
committerRob Austein <sra@hactrn.net>2006-07-26 23:40:31 +0000
commitce50dc165b1d142f111a86aac45883e3c8314e74 (patch)
tree3249454124918d7d5292f25abc08e64c18f89505
parent3ba51255e5662338da485789a7f469d1c58c79ac (diff)
Little cleanups while trying (and, so far, failing) to track down a
set of reported memory leaks. svn path=/openssl/trunk/crypto/x509v3/v3_addr.c; revision=94
-rw-r--r--openssl/trunk/crypto/x509v3/v3_addr.c38
-rw-r--r--openssl/trunk/crypto/x509v3/v3_asid.c4
2 files changed, 22 insertions, 20 deletions
diff --git a/openssl/trunk/crypto/x509v3/v3_addr.c b/openssl/trunk/crypto/x509v3/v3_addr.c
index c209afb1..8e8a6c0e 100644
--- a/openssl/trunk/crypto/x509v3/v3_addr.c
+++ b/openssl/trunk/crypto/x509v3/v3_addr.c
@@ -356,7 +356,7 @@ static int make_addressPrefix(IPAddressOrRange **result,
aor->type = IPAddressOrRange_addressPrefix;
if ((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;
@@ -447,30 +447,32 @@ static IPAddressFamily *make_IPAddressFamily(IPAddrBlocks *addr,
{
IPAddressFamily *f;
unsigned char key[3];
- unsigned keylen = safi == NULL ? 2 : 3;
+ unsigned keylen;
int i;
+
key[0] = (afi >> 8) & 0xFF;
key[1] = afi & 0xFF;
- if (safi != NULL)
+ 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);
assert(f->addressFamily->data != NULL);
if (!memcmp(f->addressFamily->data, key, keylen))
return f;
}
- if ((f = IPAddressFamily_new()) == NULL)
- return NULL;
- if ((f->ipAddressChoice = IPAddressChoice_new()) == NULL ||
- (f->addressFamily = ASN1_OCTET_STRING_new()) == NULL ||
- !ASN1_OCTET_STRING_set(f->addressFamily, key, keylen))
- goto err;
- memset(f->ipAddressChoice, 0, sizeof(*f->ipAddressChoice));
- if (!sk_IPAddressFamily_push(addr, f))
- goto err;
- return f;
- err:
+ if ((f = IPAddressFamily_new()) != NULL &&
+ (f->ipAddressChoice = IPAddressChoice_new()) != NULL &&
+ (f->addressFamily = ASN1_OCTET_STRING_new()) != NULL &&
+ ASN1_OCTET_STRING_set(f->addressFamily, key, keylen) &&
+ sk_IPAddressFamily_push(addr, f))
+ return f;
+
IPAddressFamily_free(f);
return NULL;
}
@@ -716,14 +718,14 @@ static void *v2i_IPAddrBlocks(struct v3_ext_method *method,
char *s = val->value;
int prefixlen, af;
- if ( !name_cmp(val->name, "ipv4")) {
+ if ( !name_cmp(val->name, "IPv4")) {
afi = IANA_AFI_IPV4;
- } else if (!name_cmp(val->name, "ipv6")) {
+ } else if (!name_cmp(val->name, "IPv6")) {
afi = IANA_AFI_IPV6;
- } else if (!name_cmp(val->name, "ipv4-safi")) {
+ } else if (!name_cmp(val->name, "IPv4-SAFI")) {
afi = IANA_AFI_IPV4;
safi = &safi_;
- } else if (!name_cmp(val->name, "ipv6-safi")) {
+ } else if (!name_cmp(val->name, "IPv6-SAFI")) {
afi = IANA_AFI_IPV6;
safi = &safi_;
} else {
diff --git a/openssl/trunk/crypto/x509v3/v3_asid.c b/openssl/trunk/crypto/x509v3/v3_asid.c
index 4d4d548e..2dc6441c 100644
--- a/openssl/trunk/crypto/x509v3/v3_asid.c
+++ b/openssl/trunk/crypto/x509v3/v3_asid.c
@@ -365,9 +365,9 @@ static void *v2i_ASIdentifiers(struct v3_ext_method *method,
/*
* Figure out whether this is an AS or an RDI.
*/
- if ( !name_cmp(val->name, "as")) {
+ if ( !name_cmp(val->name, "AS")) {
choice = &asid->asnum;
- } else if (!name_cmp(val->name, "rdi")) {
+ } else if (!name_cmp(val->name, "RDI")) {
choice = &asid->rdi;
} else {
X509V3err(X509V3_F_V2I_ASIDENTIFIERS, X509V3_R_EXTENSION_NAME_ERROR);