OpenCoverage

a_set.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/a_set.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5typedef struct {-
6 unsigned char *pbData;-
7 int cbData;-
8} MYBLOB;-
9-
10-
11-
12-
13static int-
14SetBlobCmp(const void *elem1, const void *elem2)-
15{-
16 const MYBLOB *b1 = (const MYBLOB *)elem1;-
17 const MYBLOB *b2 = (const MYBLOB *)elem2;-
18 int r;-
19-
20 r = memcmp(b1->pbData, b2->pbData,-
21 b1->cbData < b2->cbData ? b1->cbData : b2->cbData);-
22 if (r != 0
r != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
23 return
never executed: return r;
r;
never executed: return r;
0
24 return
never executed: return b1->cbData - b2->cbData;
b1->cbData - b2->cbData;
never executed: return b1->cbData - b2->cbData;
0
25}-
26-
27-
28int-
29i2d_ASN1_SET(struct stack_st_OPENSSL_BLOCK *a, unsigned char **pp, i2d_of_void *i2d,-
30 int ex_tag, int ex_class, int is_set)-
31{-
32 int ret = 0, r;-
33 int i;-
34 unsigned char *p;-
35 unsigned char *pStart, *pTempMem;-
36 MYBLOB *rgSetBlob;-
37 int totSize;-
38-
39 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
40 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
41 )-
42 return
never executed: return 0;
0;
never executed: return 0;
0
43 for (i = sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0))) - 1; i >= 0
i >= 0Description
TRUEnever evaluated
FALSEnever evaluated
; i--)
0
44 ret += i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)),
never executed: ret += i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), ((void *)0) );
0
45 ((void *)0)
never executed: ret += i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), ((void *)0) );
0
46 );
never executed: ret += i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), ((void *)0) );
0
47 r = ASN1_object_size(1, ret, ex_tag);-
48 if (pp ==
pp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
49 ((void *)0)
pp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
50 )-
51 return
never executed: return r;
r;
never executed: return r;
0
52-
53 p = *pp;-
54 ASN1_put_object(&p, 1, ret, ex_tag, ex_class);-
55-
56-
57-
58-
59-
60 if (!is_set
!is_setDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(sk_num(((_STA...OCK*)0))) < 2)Description
TRUEnever evaluated
FALSEnever evaluated
sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0))) < 2)
(sk_num(((_STA...OCK*)0))) < 2)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
61 for (i = 0; i < sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)))
i < sk_num(((_...SL_BLOCK*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
62 i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), &p);
never executed: i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), &p);
0
63-
64 *pp = p;-
65 return
never executed: return r;
r;
never executed: return r;
0
66 }-
67-
68 pStart = p;-
69-
70 rgSetBlob = reallocarray(-
71 ((void *)0)-
72 , sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0))), sizeof(MYBLOB));-
73 if (rgSetBlob ==
rgSetBlob == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
74 ((void *)0)
rgSetBlob == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
75 ) {-
76 ERR_put_error(13,(0xfff),((1|64)),__FILE__,128);-
77 return
never executed: return 0;
0;
never executed: return 0;
0
78 }-
79-
80 for (i = 0; i < sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)))
i < sk_num(((_...SL_BLOCK*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
81 rgSetBlob[i].pbData = p;-
82 i2d(((OPENSSL_BLOCK)sk_value(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)), i)), &p);-
83-
84 rgSetBlob[i].cbData = p - rgSetBlob[i].pbData;-
85 }
never executed: end of block
0
86 *pp = p;-
87 totSize = p - pStart;-
88-
89-
90-
91-
92-
93-
94 qsort(rgSetBlob, sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0))), sizeof(MYBLOB), SetBlobCmp);-
95 if ((
(pTempMem = ma...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pTempMem = malloc(totSize)) ==
(pTempMem = ma...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
96 ((void *)0)
(pTempMem = ma...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
97 ) {-
98 free(rgSetBlob);-
99 ERR_put_error(13,(0xfff),((1|64)),__FILE__,149);-
100 return
never executed: return 0;
0;
never executed: return 0;
0
101 }-
102-
103-
104 p = pTempMem;-
105 for (i = 0; i < sk_num(((_STACK*) (1 ? a : (struct stack_st_OPENSSL_BLOCK*)0)))
i < sk_num(((_...SL_BLOCK*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
106 memcpy(p, rgSetBlob[i].pbData, rgSetBlob[i].cbData);-
107 p += rgSetBlob[i].cbData;-
108 }
never executed: end of block
0
109-
110-
111 memcpy(pStart, pTempMem, totSize);-
112 free(pTempMem);-
113 free(rgSetBlob);-
114-
115 return
never executed: return r;
r;
never executed: return r;
0
116}-
117-
118struct stack_st_OPENSSL_BLOCK *-
119d2i_ASN1_SET(struct stack_st_OPENSSL_BLOCK **a, const unsigned char **pp, long length,-
120 d2i_of_void *d2i, void (*free_func)(OPENSSL_BLOCK), int ex_tag,-
121 int ex_class)-
122{-
123 ASN1_const_CTX c;-
124 struct stack_st_OPENSSL_BLOCK *ret = -
125 ((void *)0)-
126 ;-
127-
128 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
129 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
130 || (*
(*a) == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
a) ==
(*a) == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
131 ((void *)0)
(*a) == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
132 ) {-
133 if ((
(ret = ((struc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = ((struct stack_st_OPENSSL_BLOCK *)sk_new_null())) ==
(ret = ((struc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
134 ((void *)0)
(ret = ((struc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
135 ) {-
136 ERR_put_error(13,(0xfff),((1|64)),__FILE__,178);-
137 goto
never executed: goto err;
err;
never executed: goto err;
0
138 }-
139 }
never executed: end of block
else
0
140 ret = *a;
never executed: ret = *a;
0
141-
142 c.p = *pp;-
143 c.max = (
(length == 0)Description
TRUEnever evaluated
FALSEnever evaluated
length == 0)
(length == 0)Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : (c.p + length);
0
144-
145 c.inf = ASN1_get_object(&c.p, &c.slen, &c.tag, &c.xclass, c.max - c.p);-
146 if (c.inf & 0x80
c.inf & 0x80Description
TRUEnever evaluated
FALSEnever evaluated
)
0
147 goto
never executed: goto err;
err;
never executed: goto err;
0
148 if (ex_class != c.xclass
ex_class != c.xclassDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
149 ERR_put_error(13,(0xfff),(101),__FILE__,191);-
150 goto
never executed: goto err;
err;
never executed: goto err;
0
151 }-
152 if (ex_tag != c.tag
ex_tag != c.tagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
153 ERR_put_error(13,(0xfff),(104),__FILE__,195);-
154 goto
never executed: goto err;
err;
never executed: goto err;
0
155 }-
156 if (c.slen + c.p > c.max
c.slen + c.p > c.maxDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
157 ERR_put_error(13,(0xfff),(136),__FILE__,199);-
158 goto
never executed: goto err;
err;
never executed: goto err;
0
159 }-
160-
161-
162 if (c.inf == (0x20 + 1)
c.inf == (0x20 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
163 c.slen = length + *pp - c.p;
never executed: c.slen = length + *pp - c.p;
0
164 c.max = c.p + c.slen;-
165-
166 while (c.p < c.max
c.p < c.maxDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
167 char *s;-
168-
169 if ((((
((c.inf&1) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
c.inf&1) == 0)
((c.inf&1) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
?(c.slen <= 0): (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen)))
(((c.inf&1) ==...&c.p,c.slen)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
170 break;
never executed: break;
0
171 if ((
(s = d2i( ((vo...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
s = d2i(
(s = d2i( ((vo...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
172 ((void *)0)
(s = d2i( ((vo...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
173 , &c.p, c.slen)) ==
(s = d2i( ((vo...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
174 ((void *)0)
(s = d2i( ((vo...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
175 ) {-
176 ERR_put_error(13,(0xfff),(113),__FILE__,214);-
177 asn1_add_error(*pp, (int)(c.p - *pp));-
178 goto
never executed: goto err;
err;
never executed: goto err;
0
179 }-
180 if (!sk_push(((_STACK*) (1 ? ret : (struct stack_st_OPENSSL_BLOCK*)0)), ((void*) (1 ? s : (void*)0)))
!sk_push(((_ST... : (void*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
181 goto
never executed: goto err;
err;
never executed: goto err;
0
182 }
never executed: end of block
0
183 if (a !=
a != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
184 ((void *)0)
a != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
185 )-
186 *
never executed: *a = ret;
a = ret;
never executed: *a = ret;
0
187 *pp = c.p;-
188 return
never executed: return ret;
ret;
never executed: return ret;
0
189-
190err:-
191 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
192 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
193 || *
*a != retDescription
TRUEnever evaluated
FALSEnever evaluated
a != ret
*a != retDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
194 if (free_func !=
free_func != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
195 ((void *)0)
free_func != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
196 )-
197 sk_pop_free(((_STACK*) (1 ? ret : (struct stack_st_OPENSSL_BLOCK*)0)), ((void (*)(void *)) ((1 ? free_func : (void (*)(OPENSSL_BLOCK))0))));
never executed: sk_pop_free(((_STACK*) (1 ? ret : (struct stack_st_OPENSSL_BLOCK*)0)), ((void (*)(void *)) ((1 ? free_func : (void (*)(OPENSSL_BLOCK))0))));
0
198 else-
199 sk_free(((_STACK*) (1 ? ret : (struct stack_st_OPENSSL_BLOCK*)0)));
never executed: sk_free(((_STACK*) (1 ? ret : (struct stack_st_OPENSSL_BLOCK*)0)));
0
200 }-
201 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
202 ((void *)0)
never executed: return ((void *)0) ;
0
203 ;
never executed: return ((void *)0) ;
0
204}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2