OpenCoverage

bf_nbio.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bio/bf_nbio.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7static int nbiof_write(BIO *h, const char *buf, int num);-
8static int nbiof_read(BIO *h, char *buf, int size);-
9static int nbiof_puts(BIO *h, const char *str);-
10static int nbiof_gets(BIO *h, char *str, int size);-
11static long nbiof_ctrl(BIO *h, int cmd, long arg1, void *arg2);-
12static int nbiof_new(BIO *h);-
13static int nbiof_free(BIO *data);-
14static long nbiof_callback_ctrl(BIO *h, int cmd, BIO_info_cb *fp);-
15typedef struct nbio_test_st {-
16-
17 int lrn;-
18 int lwn;-
19} NBIO_TEST;-
20-
21static const BIO_METHOD methods_nbiof = {-
22 (16|0x0200),-
23 "non-blocking IO test filter",-
24-
25 bwrite_conv,-
26 nbiof_write,-
27-
28 bread_conv,-
29 nbiof_read,-
30 nbiof_puts,-
31 nbiof_gets,-
32 nbiof_ctrl,-
33 nbiof_new,-
34 nbiof_free,-
35 nbiof_callback_ctrl,-
36};-
37-
38const BIO_METHOD *BIO_f_nbio_test(void)-
39{-
40 return
never executed: return &methods_nbiof;
&methods_nbiof;
never executed: return &methods_nbiof;
0
41}-
42-
43static int nbiof_new(BIO *bi)-
44{-
45 NBIO_TEST *nt;-
46-
47 if ((
(nt = CRYPTO_z...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
nt = CRYPTO_zalloc(sizeof(*nt), __FILE__, 60)) ==
(nt = CRYPTO_z...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
48 ((void *)0)
(nt = CRYPTO_z...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
49 ) {-
50 ERR_put_error(32,(154),((1|64)),__FILE__,61);-
51 return
never executed: return 0;
0;
never executed: return 0;
0
52 }-
53 nt->lrn = -1;-
54 nt->lwn = -1;-
55 bi->ptr = (char *)nt;-
56 bi->init = 1;-
57 return
never executed: return 1;
1;
never executed: return 1;
0
58}-
59-
60static int nbiof_free(BIO *a)-
61{-
62 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
63 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
64 )-
65 return
never executed: return 0;
0;
never executed: return 0;
0
66 CRYPTO_free(a->ptr, __FILE__, 75);-
67 a->ptr = -
68 ((void *)0)-
69 ;-
70 a->init = 0;-
71 a->flags = 0;-
72 return
never executed: return 1;
1;
never executed: return 1;
0
73}-
74-
75static int nbiof_read(BIO *b, char *out, int outl)-
76{-
77 int ret = 0;-
78 int num;-
79 unsigned char n;-
80-
81 if (out ==
out == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
82 ((void *)0)
out == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
83 )-
84 return
never executed: return 0;
0;
never executed: return 0;
0
85 if (b->next_bio ==
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
86 ((void *)0)
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
87 )-
88 return
never executed: return 0;
0;
never executed: return 0;
0
89-
90 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
91 if (RAND_priv_bytes(&n, 1) <= 0
RAND_priv_bytes(&n, 1) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
92 return
never executed: return -1;
-1;
never executed: return -1;
0
93 num = (n & 0x07);-
94-
95 if (outl > num
outl > numDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
96 outl = num;
never executed: outl = num;
0
97-
98 if (num == 0
num == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
99 ret = -1;-
100 BIO_set_flags(b, (0x01|0x08));-
101 }
never executed: end of block
else {
0
102 ret = BIO_read(b->next_bio, out, outl);-
103 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
104 BIO_copy_next_retry(b);
never executed: BIO_copy_next_retry(b);
0
105 }
never executed: end of block
0
106 return
never executed: return ret;
ret;
never executed: return ret;
0
107}-
108-
109static int nbiof_write(BIO *b, const char *in, int inl)-
110{-
111 NBIO_TEST *nt;-
112 int ret = 0;-
113 int num;-
114 unsigned char n;-
115-
116 if ((
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
in ==
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
117 ((void *)0)
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
118 )
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(inl <= 0)Description
TRUEnever evaluated
FALSEnever evaluated
inl <= 0)
(inl <= 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
119 return
never executed: return 0;
0;
never executed: return 0;
0
120 if (b->next_bio ==
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
121 ((void *)0)
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
122 )-
123 return
never executed: return 0;
0;
never executed: return 0;
0
124 nt = (NBIO_TEST *)b->ptr;-
125-
126 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
127-
128 if (nt->lwn > 0
nt->lwn > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
129 num = nt->lwn;-
130 nt->lwn = 0;-
131 }
never executed: end of block
else {
0
132 if (RAND_priv_bytes(&n, 1) <= 0
RAND_priv_bytes(&n, 1) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
133 return
never executed: return -1;
-1;
never executed: return -1;
0
134 num = (n & 7);-
135 }
never executed: end of block
0
136-
137 if (inl > num
inl > numDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
138 inl = num;
never executed: inl = num;
0
139-
140 if (num == 0
num == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
141 ret = -1;-
142 BIO_set_flags(b, (0x02|0x08));-
143 }
never executed: end of block
else {
0
144 ret = BIO_write(b->next_bio, in, inl);-
145 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
146 BIO_copy_next_retry(b);-
147 nt->lwn = inl;-
148 }
never executed: end of block
0
149 }
never executed: end of block
0
150 return
never executed: return ret;
ret;
never executed: return ret;
0
151}-
152-
153static long nbiof_ctrl(BIO *b, int cmd, long num, void *ptr)-
154{-
155 long ret;-
156-
157 if (b->next_bio ==
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
158 ((void *)0)
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
159 )-
160 return
never executed: return 0;
0;
never executed: return 0;
0
161 switch (cmd) {-
162 case
never executed: case 101:
101:
never executed: case 101:
0
163 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
164 ret = BIO_ctrl(b->next_bio, cmd, num, ptr);-
165 BIO_copy_next_retry(b);-
166 break;
never executed: break;
0
167 case
never executed: case 12:
12:
never executed: case 12:
0
168 ret = 0L;-
169 break;
never executed: break;
0
170 default
never executed: default:
:
never executed: default:
0
171 ret = BIO_ctrl(b->next_bio, cmd, num, ptr);-
172 break;
never executed: break;
0
173 }-
174 return
never executed: return ret;
ret;
never executed: return ret;
0
175}-
176-
177static long nbiof_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)-
178{-
179 long ret = 1;-
180-
181 if (b->next_bio ==
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
182 ((void *)0)
b->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
183 )-
184 return
never executed: return 0;
0;
never executed: return 0;
0
185 switch (cmd) {-
186 default
never executed: default:
:
never executed: default:
0
187 ret = BIO_callback_ctrl(b->next_bio, cmd, fp);-
188 break;
never executed: break;
0
189 }-
190 return
never executed: return ret;
ret;
never executed: return ret;
0
191}-
192-
193static int nbiof_gets(BIO *bp, char *buf, int size)-
194{-
195 if (bp->next_bio ==
bp->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ((void *)0)
bp->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
197 )-
198 return
never executed: return 0;
0;
never executed: return 0;
0
199 return
never executed: return BIO_gets(bp->next_bio, buf, size);
BIO_gets(bp->next_bio, buf, size);
never executed: return BIO_gets(bp->next_bio, buf, size);
0
200}-
201-
202static int nbiof_puts(BIO *bp, const char *str)-
203{-
204 if (bp->next_bio ==
bp->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
205 ((void *)0)
bp->next_bio == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
206 )-
207 return
never executed: return 0;
0;
never executed: return 0;
0
208 return
never executed: return BIO_puts(bp->next_bio, str);
BIO_puts(bp->next_bio, str);
never executed: return BIO_puts(bp->next_bio, str);
0
209}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2