OpenCoverage

pcy_cache.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/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-
11static int-
12policy_cache_create(X509 *x, CERTIFICATEPOLICIES *policies, int crit)-
13{-
14 int i;-
15 int 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 (sk_num(((_STACK*) (1 ? (policies) : (struct stack_st_POLICYINFO*)0))) == 0
sk_num(((_STAC...NFO*)0))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
23 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
24 cache->data = ((struct stack_st_X509_POLICY_DATA *)sk_new(((int (*)(const void *, const void *)) ((1 ? (policy_data_cmp) : (int (*)(const X509_POLICY_DATA * const *, const X509_POLICY_DATA * const *))0)))));-
25 if (!cache->data
!cache->dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
26 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
27 for (i = 0; i < sk_num(((_STACK*) (1 ? (policies) : (struct stack_st_POLICYINFO*)0)))
i < sk_num(((_...LICYINFO*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
28 policy = ((POLICYINFO *)sk_value(((_STACK*) (1 ? (policies) : (struct stack_st_POLICYINFO*)0)), (i)));-
29 data = policy_data_new(policy, -
30 ((void *)0)-
31 , crit);-
32 if (!data
!dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
33 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
34-
35-
36-
37 if (OBJ_obj2nid(data->valid_policy) == 746
OBJ_obj2nid(da...policy) == 746Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
38 if (cache->anyPolicy
cache->anyPolicyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
39 ret = -1;-
40 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
41 }-
42 cache->anyPolicy = data;-
43 }
never executed: end of block
else if (sk_find(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void*) (1 ? (data) : (X509_POLICY_DATA*)0))) != -1
sk_find(((_STA...TA*)0))) != -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
44 ret = -1;-
45 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
46 } else if (!sk_push(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void*) (1 ? (data) : (X509_POLICY_DATA*)0)))
!sk_push(((_ST...ICY_DATA*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
47 goto
never executed: goto bad_policy;
bad_policy;
never executed: goto bad_policy;
0
48 data = -
49 ((void *)0)-
50 ;-
51 }
never executed: end of block
0
52 ret = 1;-
53-
54bad_policy:
code before this statement never executed: bad_policy:
0
55 if (ret == -1
ret == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
56 x->ex_flags |= 0x0800;
never executed: x->ex_flags |= 0x0800;
0
57 if (data
dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
58 policy_data_free(data);
never executed: policy_data_free(data);
0
59 sk_pop_free(((_STACK*) (1 ? (policies) : (struct stack_st_POLICYINFO*)0)), ((void (*)(void *)) ((1 ? (POLICYINFO_free) : (void (*)(POLICYINFO *))0))));-
60 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
61 sk_pop_free(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void (*)(void *)) ((1 ? (policy_data_free) : (void (*)(X509_POLICY_DATA *))0))));-
62 cache->data = -
63 ((void *)0)-
64 ;-
65 }
never executed: end of block
0
66 return
never executed: return ret;
ret;
never executed: return ret;
0
67}-
68-
69static int-
70policy_cache_new(X509 *x)-
71{-
72 X509_POLICY_CACHE *cache;-
73 ASN1_INTEGER *ext_any = -
74 ((void *)0)-
75 ;-
76 POLICY_CONSTRAINTS *ext_pcons = -
77 ((void *)0)-
78 ;-
79 CERTIFICATEPOLICIES *ext_cpols = -
80 ((void *)0)-
81 ;-
82 POLICY_MAPPINGS *ext_pmaps = -
83 ((void *)0)-
84 ;-
85 int i;-
86-
87 cache = malloc(sizeof(X509_POLICY_CACHE));-
88 if (!cache
!cacheDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
89 return
never executed: return 0;
0;
never executed: return 0;
0
90 cache->anyPolicy = -
91 ((void *)0)-
92 ;-
93 cache->data = -
94 ((void *)0)-
95 ;-
96 cache->any_skip = -1;-
97 cache->explicit_skip = -1;-
98 cache->map_skip = -1;-
99-
100 x->policy_cache = cache;-
101-
102-
103-
104-
105 ext_pcons = X509_get_ext_d2i(x, 401, &i, -
106 ((void *)0)-
107 );-
108-
109 if (!ext_pcons
!ext_pconsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
110 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
111 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
112 }
never executed: end of block
else {
0
113 if (!ext_pcons->requireExplicitPolicy
!ext_pcons->re...ExplicitPolicyDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
114 !ext_pcons->inhibitPolicyMapping
!ext_pcons->in...tPolicyMappingDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
115 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
116 if (!policy_cache_set_int(&cache->explicit_skip,
!policy_cache_...xplicitPolicy)Description
TRUEnever evaluated
FALSEnever evaluated
0
117 ext_pcons->requireExplicitPolicy)
!policy_cache_...xplicitPolicy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
118 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
119 if (!policy_cache_set_int(&cache->map_skip,
!policy_cache_...PolicyMapping)Description
TRUEnever evaluated
FALSEnever evaluated
0
120 ext_pcons->inhibitPolicyMapping)
!policy_cache_...PolicyMapping)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
121 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
122 }
never executed: end of block
0
123-
124-
125-
126 ext_cpols = X509_get_ext_d2i(x, 89, &i, -
127 ((void *)0)-
128 );-
129-
130-
131-
132-
133 if (!ext_cpols
!ext_cpolsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
134-
135 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
136 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
137 return
never executed: return 1;
1;
never executed: return 1;
0
138 }-
139-
140 i = policy_cache_create(x, ext_cpols, i);-
141-
142-
143-
144 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
145 return
never executed: return i;
i;
never executed: return i;
0
146-
147 ext_pmaps = X509_get_ext_d2i(x, 747, &i, -
148 ((void *)0)-
149 );-
150-
151 if (!ext_pmaps
!ext_pmapsDescription
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 }
never executed: end of block
else {
0
156 i = policy_cache_set_mapping(x, ext_pmaps);-
157 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
158 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
159 }
never executed: end of block
0
160-
161 ext_any = X509_get_ext_d2i(x, 748, &i, -
162 ((void *)0)-
163 );-
164-
165 if (!ext_any
!ext_anyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
166 if (i != -1
i != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
167 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
168 }
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
169 goto
never executed: goto bad_cache;
bad_cache;
never executed: goto bad_cache;
0
170-
171 if (0) {-
172bad_cache:-
173 x->ex_flags |= 0x0800;-
174 }
never executed: end of block
0
175-
176 if (ext_pcons
ext_pconsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
177 POLICY_CONSTRAINTS_free(ext_pcons);
never executed: POLICY_CONSTRAINTS_free(ext_pcons);
0
178-
179 if (ext_any
ext_anyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
180 ASN1_INTEGER_free(ext_any);
never executed: ASN1_INTEGER_free(ext_any);
0
181-
182 return
never executed: return 1;
1;
never executed: return 1;
0
183}-
184-
185void-
186policy_cache_free(X509_POLICY_CACHE *cache)-
187{-
188 if (!cache
!cacheDescription
TRUEevaluated 244 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • servertest
  • ssltest
  • tlstest
  • verifytest
FALSEnever evaluated
)
0-244
189 return;
executed 244 times by 7 tests: return;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • servertest
  • ssltest
  • tlstest
  • verifytest
244
190 if (cache->anyPolicy
cache->anyPolicyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
191 policy_data_free(cache->anyPolicy);
never executed: policy_data_free(cache->anyPolicy);
0
192 if (cache->data
cache->dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
193 sk_pop_free(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void (*)(void *)) ((1 ? (policy_data_free) : (void (*)(X509_POLICY_DATA *))0))));
never executed: sk_pop_free(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void (*)(void *)) ((1 ? (policy_data_free) : (void (*)(X509_POLICY_DATA *))0))));
0
194 free(cache);-
195}
never executed: end of block
0
196-
197const X509_POLICY_CACHE *-
198policy_cache_set(X509 *x)-
199{-
200 if (x->policy_cache ==
x->policy_cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
201 ((void *)0)
x->policy_cache == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
202 ) {-
203 CRYPTO_lock(1|8,3,__FILE__,234);-
204 policy_cache_new(x);-
205 CRYPTO_lock(2|8,3,__FILE__,236);-
206 }
never executed: end of block
0
207-
208 return
never executed: return x->policy_cache;
x->policy_cache;
never executed: return x->policy_cache;
0
209}-
210-
211X509_POLICY_DATA *-
212policy_cache_find_data(const X509_POLICY_CACHE *cache, const ASN1_OBJECT *id)-
213{-
214 int idx;-
215 X509_POLICY_DATA tmp;-
216-
217 tmp.valid_policy = (ASN1_OBJECT *)id;-
218 idx = sk_find(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), ((void*) (1 ? (&tmp) : (X509_POLICY_DATA*)0)));-
219 if (idx == -1
idx == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
220 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
221 ((void *)0)
never executed: return ((void *)0) ;
0
222 ;
never executed: return ((void *)0) ;
0
223 return
never executed: return ((X509_POLICY_DATA *)sk_value(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), (idx)));
((X509_POLICY_DATA *)sk_value(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), (idx)));
never executed: return ((X509_POLICY_DATA *)sk_value(((_STACK*) (1 ? (cache->data) : (struct stack_st_X509_POLICY_DATA*)0)), (idx)));
0
224}-
225-
226static int-
227policy_data_cmp(const X509_POLICY_DATA * const *a,-
228 const X509_POLICY_DATA * const *b)-
229{-
230 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
231}-
232-
233static int-
234policy_cache_set_int(long *out, ASN1_INTEGER *value)-
235{-
236 if (value ==
value == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
237 ((void *)0)
value == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
238 )-
239 return
never executed: return 1;
1;
never executed: return 1;
0
240 if (value->type == (2 | 0x100)
value->type == (2 | 0x100)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
241 return
never executed: return 0;
0;
never executed: return 0;
0
242 *out = ASN1_INTEGER_get(value);-
243 return
never executed: return 1;
1;
never executed: return 1;
0
244}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2