diff options
author | Rob Austein <sra@hactrn.net> | 2006-07-26 23:40:31 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2006-07-26 23:40:31 +0000 |
commit | ce50dc165b1d142f111a86aac45883e3c8314e74 (patch) | |
tree | 3249454124918d7d5292f25abc08e64c18f89505 | |
parent | 3ba51255e5662338da485789a7f469d1c58c79ac (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.c | 38 | ||||
-rw-r--r-- | openssl/trunk/crypto/x509v3/v3_asid.c | 4 |
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); |