OpenCoverage

pcy_cache.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/pcy_cache.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3static int policy_data_cmp(const X509_POLICY_DATA *const *a,-
4 const X509_POLICY_DATA *const *b);-
5static int policy_cache_set_int(long *out, ASN1_INTEGER *value);-
6-
7-
8-
9-
10-
11-
12static int policy_cache_create(X509 *x,-
13 CERTIFICATEPOLICIES *policies, int crit)-
14{-
15 int i, num, ret = 0;-
16 X509_POLICY_CACHE *cache = x->policy_cache;-
17 X509_POLICY_DATA *data = -
18 ((void *)0)-
19 ;-
20 POLICYINFO *policy;-
21-
22 if ((
(num = sk_POLI...olicies)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
num = sk_POLICYINFO_num(policies)) <= 0
(num = sk_POLI...olicies)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
23 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
24 cache->data = sk_X509_POLICY_DATA_new(policy_data_cmp);-
25 if (cache->data ==
cache->data == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
26 ((void *)0)
cache->data == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
27 ) {-
28 ERR_put_error(34,(169),((1|64)),__FILE__,38);-
29 goto
never executed: goto just_cleanup;
just_cleanup;
never executed: goto just_cleanup;
0
30 }-
31 for (i = 0; i < num
i < numDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
32 policy = sk_POLICYINFO_value(policies, i);-
33 data = policy_data_new(policy, -
34 ((void *)0)-
35 , crit);-
36 if (data ==
data == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
37 ((void *)0)
data == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
38 ) {-
39 ERR_put_error(34,(169),((1|64)),__FILE__,45);-
40 goto
never executed: goto just_cleanup;
just_cleanup;
never executed: goto just_cleanup;
0
41 }-
42-
43-
44-
45 if (OBJ_obj2nid(data->valid_policy) == 746
OBJ_obj2nid(da...policy) == 746Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
46 if (cache->anyPolicy
cache->anyPolicyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
47 ret = -1;-
48 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
49 }-
50 cache->anyPolicy = data;-
51 }
never executed: end of block
else if (sk_X509_POLICY_DATA_find(cache->data, data) >=0
sk_X509_POLICY...ata, data) >=0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
52 ret = -1;-
53 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
54 } else if (!sk_X509_POLICY_DATA_push(cache->data, data)
!sk_X509_POLIC...e->data, data)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
55 ERR_put_error(34,(169),((1|64)),__FILE__,61);-
56 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
57 }-
58 data = -
59 ((void *)0)-
60 ;-
61 }
never executed: end of block
0
62 ret = 1;-
63-
64 bad_policy:
code before this statement never executed: bad_policy:
0
65 if (ret == -1
ret == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
66 x->ex_flags |= 0x800;
never executed: x->ex_flags |= 0x800;
0
67 policy_data_free(data);-
68 just_cleanup:
code before this statement never executed: just_cleanup:
0
69 sk_POLICYINFO_pop_free(policies, POLICYINFO_free);-
70 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
71 sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free);-
72 cache->data = -
73 ((void *)0)-
74 ;-
75 }
never executed: end of block
0
76 return
never executed: return ret;
ret;
never executed: return ret;
0
77}-
78-
79static int policy_cache_new(X509 *x)-
80{-
81 X509_POLICY_CACHE *cache;-
82 ASN1_INTEGER *ext_any = -
83 ((void *)0)-
84 ;-
85 POLICY_CONSTRAINTS *ext_pcons = -
86 ((void *)0)-
87 ;-
88 CERTIFICATEPOLICIES *ext_cpols = -
89 ((void *)0)-
90 ;-
91 POLICY_MAPPINGS *ext_pmaps = -
92 ((void *)0)-
93 ;-
94 int i;-
95-
96 if (x->policy_cache !=
x->policy_cache != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
97 ((void *)0)
x->policy_cache != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
98 )-
99 return
never executed: return 1;
1;
never executed: return 1;
0
100 cache = CRYPTO_malloc(sizeof(*cache), __FILE__, 92);-
101 if (cache ==
cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
102 ((void *)0)
cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
103 ) {-
104 ERR_put_error(34,(170),((1|64)),__FILE__,94);-
105 return
never executed: return 0;
0;
never executed: return 0;
0
106 }-
107 cache->anyPolicy = -
108 ((void *)0)-
109 ;-
110 cache->data = -
111 ((void *)0)-
112 ;-
113 cache->any_skip = -1;-
114 cache->explicit_skip = -1;-
115 cache->map_skip = -1;-
116-
117 x->policy_cache = cache;-
118-
119-
120-
121-
122-
123 ext_pcons = X509_get_ext_d2i(x, 401, &i, -
124 ((void *)0)-
125 );-
126-
127 if (!ext_pcons
!ext_pconsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
128 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
129 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
130 }
never executed: end of block
else {
0
131 if (!ext_pcons->requireExplicitPolicy
!ext_pcons->re...ExplicitPolicyDescription
TRUEnever evaluated
FALSEnever evaluated
0
132 && !ext_pcons->inhibitPolicyMapping
!ext_pcons->in...tPolicyMappingDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
133 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
134 if (!policy_cache_set_int(&cache->explicit_skip,
!policy_cache_...xplicitPolicy)Description
TRUEnever evaluated
FALSEnever evaluated
0
135 ext_pcons->requireExplicitPolicy)
!policy_cache_...xplicitPolicy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
136 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
137 if (!policy_cache_set_int(&cache->map_skip,
!policy_cache_...PolicyMapping)Description
TRUEnever evaluated
FALSEnever evaluated
0
138 ext_pcons->inhibitPolicyMapping)
!policy_cache_...PolicyMapping)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
139 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
140 }
never executed: end of block
0
141-
142-
143-
144 ext_cpols = X509_get_ext_d2i(x, 89, &i, -
145 ((void *)0)-
146 );-
147-
148-
149-
150-
151 if (!ext_cpols
!ext_cpolsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
152-
153 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
154 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
155 return
never executed: return 1;
1;
never executed: return 1;
0
156 }-
157-
158 i = policy_cache_create(x, ext_cpols, i);-
159-
160-
161-
162 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
163 return
never executed: return i;
i;
never executed: return i;
0
164-
165 ext_pmaps = X509_get_ext_d2i(x, 747, &i, -
166 ((void *)0)-
167 );-
168-
169 if (!ext_pmaps
!ext_pmapsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
170-
171 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
172 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
173 }
never executed: end of block
else {
0
174 i = policy_cache_set_mapping(x, ext_pmaps);-
175 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
176 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
177 }
never executed: end of block
0
178-
179 ext_any = X509_get_ext_d2i(x, 748, &i, -
180 ((void *)0)-
181 );-
182-
183 if (!ext_any
!ext_anyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
184 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
185 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
186 }
never executed: end of block
else if (!policy_cache_set_int(&cache->any_skip, ext_any)
!policy_cache_...skip, ext_any)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
187 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
188 goto
never executed: goto just_cleanup;
just_cleanup;
never executed: goto just_cleanup;
0
189-
190 bad_cache:-
191 x->ex_flags |= 0x800;-
192-
193 just_cleanup:
code before this statement never executed: just_cleanup:
0
194 POLICY_CONSTRAINTS_free(ext_pcons);-
195 ASN1_INTEGER_free(ext_any);-
196 return
never executed: return 1;
1;
never executed: return 1;
0
197-
198}-
199-
200void policy_cache_free(X509_POLICY_CACHE *cache)-
201{-
202 if (!cache
!cacheDescription
TRUEevaluated 39780 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-39780
203 return;
executed 39780 times by 1 test: return;
Executed by:
  • libcrypto.so.1.1
39780
204 policy_data_free(cache->anyPolicy);-
205 sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free);-
206 CRYPTO_free(cache, __FILE__, 184);-
207}
never executed: end of block
0
208-
209const X509_POLICY_CACHE *policy_cache_set(X509 *x)-
210{-
211-
212 if (x->policy_cache ==
x->policy_cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
213 ((void *)0)
x->policy_cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
214 ) {-
215 CRYPTO_THREAD_write_lock(x->lock);-
216 policy_cache_new(x);-
217 CRYPTO_THREAD_unlock(x->lock);-
218 }
never executed: end of block
0
219-
220 return
never executed: return x->policy_cache;
x->policy_cache;
never executed: return x->policy_cache;
0
221-
222}-
223-
224X509_POLICY_DATA *policy_cache_find_data(const X509_POLICY_CACHE *cache,-
225 const ASN1_OBJECT *id)-
226{-
227 int idx;-
228 X509_POLICY_DATA tmp;-
229 tmp.valid_policy = (ASN1_OBJECT *)id;-
230 idx = sk_X509_POLICY_DATA_find(cache->data, &tmp);-
231 return
never executed: return sk_X509_POLICY_DATA_value(cache->data, idx);
sk_X509_POLICY_DATA_value(cache->data, idx);
never executed: return sk_X509_POLICY_DATA_value(cache->data, idx);
0
232}-
233-
234static int policy_data_cmp(const X509_POLICY_DATA *const *a,-
235 const X509_POLICY_DATA *const *b)-
236{-
237 return
never executed: return OBJ_cmp((*a)->valid_policy, (*b)->valid_policy);
OBJ_cmp((*a)->valid_policy, (*b)->valid_policy);
never executed: return OBJ_cmp((*a)->valid_policy, (*b)->valid_policy);
0
238}-
239-
240static int policy_cache_set_int(long *out, ASN1_INTEGER *value)-
241{-
242 if (value ==
value == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
243 ((void *)0)
value == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
244 )-
245 return
never executed: return 1;
1;
never executed: return 1;
0
246 if (value->type == (2 | 0x100)
value->type == (2 | 0x100)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
247 return
never executed: return 0;
0;
never executed: return 0;
0
248 *out = ASN1_INTEGER_get(value);-
249 return
never executed: return 1;
1;
never executed: return 1;
0
250}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2