OpenCoverage

pcy_data.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/pcy_data.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include "internal/cryptlib.h"-
11#include <openssl/x509.h>-
12#include <openssl/x509v3.h>-
13-
14#include "pcy_int.h"-
15-
16/* Policy Node routines */-
17-
18void policy_data_free(X509_POLICY_DATA *data)-
19{-
20 if (data == NULL)
data == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
21 return;
never executed: return;
0
22 ASN1_OBJECT_free(data->valid_policy);-
23 /* Don't free qualifiers if shared */-
24 if (!(data->flags & POLICY_DATA_FLAG_SHARED_QUALIFIERS))
!(data->flags & 0x4)Description
TRUEnever evaluated
FALSEnever evaluated
0
25 sk_POLICYQUALINFO_pop_free(data->qualifier_set, POLICYQUALINFO_free);
never executed: sk_POLICYQUALINFO_pop_free(data->qualifier_set, POLICYQUALINFO_free);
0
26 sk_ASN1_OBJECT_pop_free(data->expected_policy_set, ASN1_OBJECT_free);-
27 OPENSSL_free(data);-
28}
never executed: end of block
0
29-
30/*-
31 * Create a data based on an existing policy. If 'id' is NULL use the OID in-
32 * the policy, otherwise use 'id'. This behaviour covers the two types of-
33 * data in RFC3280: data with from a CertificatePolicies extension and-
34 * additional data with just the qualifiers of anyPolicy and ID from another-
35 * source.-
36 */-
37-
38X509_POLICY_DATA *policy_data_new(POLICYINFO *policy,-
39 const ASN1_OBJECT *cid, int crit)-
40{-
41 X509_POLICY_DATA *ret;-
42 ASN1_OBJECT *id;-
43-
44 if (policy == NULL && cid == NULL)
policy == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
45 return NULL;
never executed: return ((void *)0) ;
0
46 if (cid) {
cidDescription
TRUEnever evaluated
FALSEnever evaluated
0
47 id = OBJ_dup(cid);-
48 if (id == NULL)
id == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
49 return NULL;
never executed: return ((void *)0) ;
0
50 } else
never executed: end of block
0
51 id = NULL;
never executed: id = ((void *)0) ;
0
52 ret = OPENSSL_zalloc(sizeof(*ret));-
53 if (ret == NULL) {
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
54 X509V3err(X509V3_F_POLICY_DATA_NEW, ERR_R_MALLOC_FAILURE);-
55 return NULL;
never executed: return ((void *)0) ;
0
56 }-
57 ret->expected_policy_set = sk_ASN1_OBJECT_new_null();-
58 if (ret->expected_policy_set == NULL) {
ret->expected_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
59 OPENSSL_free(ret);-
60 ASN1_OBJECT_free(id);-
61 X509V3err(X509V3_F_POLICY_DATA_NEW, ERR_R_MALLOC_FAILURE);-
62 return NULL;
never executed: return ((void *)0) ;
0
63 }-
64-
65 if (crit)
critDescription
TRUEnever evaluated
FALSEnever evaluated
0
66 ret->flags = POLICY_DATA_FLAG_CRITICAL;
never executed: ret->flags = 0x10;
0
67-
68 if (id)
idDescription
TRUEnever evaluated
FALSEnever evaluated
0
69 ret->valid_policy = id;
never executed: ret->valid_policy = id;
0
70 else {-
71 ret->valid_policy = policy->policyid;-
72 policy->policyid = NULL;-
73 }
never executed: end of block
0
74-
75 if (policy) {
policyDescription
TRUEnever evaluated
FALSEnever evaluated
0
76 ret->qualifier_set = policy->qualifiers;-
77 policy->qualifiers = NULL;-
78 }
never executed: end of block
0
79-
80 return ret;
never executed: return ret;
0
81}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2