Index: openssl/crypto/x509v3/pcy_map.c |
=================================================================== |
--- openssl/crypto/x509v3/pcy_map.c (revision 105093) |
+++ openssl/crypto/x509v3/pcy_map.c (working copy) |
@@ -62,31 +62,6 @@ |
#include "pcy_int.h" |
-static int ref_cmp(const X509_POLICY_REF * const *a, |
- const X509_POLICY_REF * const *b) |
- { |
- return OBJ_cmp((*a)->subjectDomainPolicy, (*b)->subjectDomainPolicy); |
- } |
- |
-static void policy_map_free(X509_POLICY_REF *map) |
- { |
- if (map->subjectDomainPolicy) |
- ASN1_OBJECT_free(map->subjectDomainPolicy); |
- OPENSSL_free(map); |
- } |
- |
-static X509_POLICY_REF *policy_map_find(X509_POLICY_CACHE *cache, ASN1_OBJECT *id) |
- { |
- X509_POLICY_REF tmp; |
- int idx; |
- tmp.subjectDomainPolicy = id; |
- |
- idx = sk_X509_POLICY_REF_find(cache->maps, &tmp); |
- if (idx == -1) |
- return NULL; |
- return sk_X509_POLICY_REF_value(cache->maps, idx); |
- } |
- |
/* Set policy mapping entries in cache. |
* Note: this modifies the passed POLICY_MAPPINGS structure |
*/ |
@@ -94,7 +69,6 @@ |
int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps) |
{ |
POLICY_MAPPING *map; |
- X509_POLICY_REF *ref = NULL; |
X509_POLICY_DATA *data; |
X509_POLICY_CACHE *cache = x->policy_cache; |
int i; |
@@ -104,7 +78,6 @@ |
ret = -1; |
goto bad_mapping; |
} |
- cache->maps = sk_X509_POLICY_REF_new(ref_cmp); |
for (i = 0; i < sk_POLICY_MAPPING_num(maps); i++) |
{ |
map = sk_POLICY_MAPPING_value(maps, i); |
@@ -116,13 +89,6 @@ |
goto bad_mapping; |
} |
- /* If we've already mapped from this OID bad mapping */ |
- if (policy_map_find(cache, map->subjectDomainPolicy) != NULL) |
- { |
- ret = -1; |
- goto bad_mapping; |
- } |
- |
/* Attempt to find matching policy data */ |
data = policy_cache_find_data(cache, map->issuerDomainPolicy); |
/* If we don't have anyPolicy can't map */ |
@@ -138,7 +104,7 @@ |
if (!data) |
goto bad_mapping; |
data->qualifier_set = cache->anyPolicy->qualifier_set; |
- map->issuerDomainPolicy = NULL; |
+ /*map->issuerDomainPolicy = NULL;*/ |
data->flags |= POLICY_DATA_FLAG_MAPPED_ANY; |
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS; |
if (!sk_X509_POLICY_DATA_push(cache->data, data)) |
@@ -149,37 +115,17 @@ |
} |
else |
data->flags |= POLICY_DATA_FLAG_MAPPED; |
- |
if (!sk_ASN1_OBJECT_push(data->expected_policy_set, |
map->subjectDomainPolicy)) |
goto bad_mapping; |
- |
- ref = OPENSSL_malloc(sizeof(X509_POLICY_REF)); |
- if (!ref) |
- goto bad_mapping; |
- |
- ref->subjectDomainPolicy = map->subjectDomainPolicy; |
map->subjectDomainPolicy = NULL; |
- ref->data = data; |
- if (!sk_X509_POLICY_REF_push(cache->maps, ref)) |
- goto bad_mapping; |
- |
- ref = NULL; |
- |
} |
ret = 1; |
bad_mapping: |
if (ret == -1) |
x->ex_flags |= EXFLAG_INVALID_POLICY; |
- if (ref) |
- policy_map_free(ref); |
- if (ret <= 0) |
- { |
- sk_X509_POLICY_REF_pop_free(cache->maps, policy_map_free); |
- cache->maps = NULL; |
- } |
sk_POLICY_MAPPING_pop_free(maps, POLICY_MAPPING_free); |
return ret; |