OpenCoverage

bss_fd.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/bio/bss_fd.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4static int fd_write(BIO *h, const char *buf, int num);-
5static int fd_read(BIO *h, char *buf, int size);-
6static int fd_puts(BIO *h, const char *str);-
7static int fd_gets(BIO *h, char *buf, int size);-
8static long fd_ctrl(BIO *h, int cmd, long arg1, void *arg2);-
9static int fd_new(BIO *h);-
10static int fd_free(BIO *data);-
11int BIO_fd_should_retry(int s);-
12-
13static const BIO_METHOD methods_fdp = {-
14 .type = (4|0x0400|0x0100),-
15 .name = "file descriptor",-
16 .bwrite = fd_write,-
17 .bread = fd_read,-
18 .bputs = fd_puts,-
19 .bgets = fd_gets,-
20 .ctrl = fd_ctrl,-
21 .create = fd_new,-
22 .destroy = fd_free-
23};-
24-
25const BIO_METHOD *-
26BIO_s_fd(void)-
27{-
28 return
never executed: return (&methods_fdp);
(&methods_fdp);
never executed: return (&methods_fdp);
0
29}-
30-
31BIO *-
32BIO_new_fd(int fd, int close_flag)-
33{-
34 BIO *ret;-
35 ret = BIO_new(BIO_s_fd());-
36 if (ret ==
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
37 ((void *)0)
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
38 )-
39 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
40 ((void *)0)
never executed: return ( ((void *)0) );
0
41 );
never executed: return ( ((void *)0) );
0
42 BIO_int_ctrl(ret,104,close_flag,fd);-
43 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
44}-
45-
46static int-
47fd_new(BIO *bi)-
48{-
49 bi->init = 0;-
50 bi->num = -1;-
51 bi->ptr = -
52 ((void *)0)-
53 ;-
54 bi->flags=0;-
55 return
never executed: return (1);
(1);
never executed: return (1);
0
56}-
57-
58static int-
59fd_free(BIO *a)-
60{-
61 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
62 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
63 )-
64 return
never executed: return (0);
(0);
never executed: return (0);
0
65 if (a->shutdown
a->shutdownDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
66 if (a->init
a->initDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
67 close(a->num);-
68 }
never executed: end of block
0
69 a->init = 0;-
70 a->flags = 0;-
71 }
never executed: end of block
0
72 return
never executed: return (1);
(1);
never executed: return (1);
0
73}-
74-
75static int-
76fd_read(BIO *b, char *out, int outl)-
77{-
78 int ret = 0;-
79-
80 if (out !=
out != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
81 ((void *)0)
out != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
82 ) {-
83 -
84 (*__errno_location ()) -
85 = 0;-
86 ret = read(b->num, out, outl);-
87 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
88 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
89 if (BIO_fd_should_retry(ret)
BIO_fd_should_retry(ret)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 BIO_set_flags(b, (0x01|0x08));
never executed: BIO_set_flags(b, (0x01|0x08));
0
91 }
never executed: end of block
0
92 }
never executed: end of block
0
93 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
94}-
95-
96static int-
97fd_write(BIO *b, const char *in, int inl)-
98{-
99 int ret;-
100 -
101(*__errno_location ()) -
102 = 0;-
103 ret = write(b->num, in, inl);-
104 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
105 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
106 if (BIO_fd_should_retry(ret)
BIO_fd_should_retry(ret)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
107 BIO_set_flags(b, (0x02|0x08));
never executed: BIO_set_flags(b, (0x02|0x08));
0
108 }
never executed: end of block
0
109 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
110}-
111-
112static long-
113fd_ctrl(BIO *b, int cmd, long num, void *ptr)-
114{-
115 long ret = 1;-
116 int *ip;-
117-
118 switch (cmd) {-
119 case
never executed: case 1:
1:
never executed: case 1:
0
120 num = 0;-
121 case
never executed: case 128:
128:
never executed: case 128:
code before this statement never executed: case 128:
0
122 ret = (long)lseek(b->num, num, 0);-
123 break;
never executed: break;
0
124 case
never executed: case 133:
133:
never executed: case 133:
0
125 case
never executed: case 3:
3:
never executed: case 3:
0
126 ret = (long)lseek(b->num, 0, 1);-
127 break;
never executed: break;
0
128 case
never executed: case 104:
104:
never executed: case 104:
0
129 fd_free(b);-
130 b->num= *((int *)ptr);-
131 b->shutdown = (int)num;-
132 b->init = 1;-
133 break;
never executed: break;
0
134 case
never executed: case 105:
105:
never executed: case 105:
0
135 if (b->init
b->initDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
136 ip = (int *)ptr;-
137 if (ip !=
ip != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
138 ((void *)0)
ip != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
139 )-
140 *
never executed: *ip = b->num;
ip = b->num;
never executed: *ip = b->num;
0
141 ret = b->num;-
142 }
never executed: end of block
else
0
143 ret = -1;
never executed: ret = -1;
0
144 break;
never executed: break;
0
145 case
never executed: case 8:
8:
never executed: case 8:
0
146 ret = b->shutdown;-
147 break;
never executed: break;
0
148 case
never executed: case 9:
9:
never executed: case 9:
0
149 b->shutdown = (int)num;-
150 break;
never executed: break;
0
151 case
never executed: case 10:
10:
never executed: case 10:
0
152 case
never executed: case 13:
13:
never executed: case 13:
0
153 ret = 0;-
154 break;
never executed: break;
0
155 case
never executed: case 12:
12:
never executed: case 12:
0
156 case
never executed: case 11:
11:
never executed: case 11:
0
157 ret = 1;-
158 break;
never executed: break;
0
159 default
never executed: default:
:
never executed: default:
0
160 ret = 0;-
161 break;
never executed: break;
0
162 }-
163 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
164}-
165-
166static int-
167fd_puts(BIO *bp, const char *str)-
168{-
169 int n, ret;-
170-
171 n = strlen(str);-
172 ret = fd_write(bp, str, n);-
173 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
174}-
175-
176static int-
177fd_gets(BIO *bp, char *buf, int size)-
178{-
179 int ret = 0;-
180 char *ptr = buf;-
181 char *end = buf + size - 1;-
182-
183 while ((
(ptr < end)Description
TRUEnever evaluated
FALSEnever evaluated
ptr < end)
(ptr < end)Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(fd_read(bp, ptr, 1) > 0)Description
TRUEnever evaluated
FALSEnever evaluated
fd_read(bp, ptr, 1) > 0)
(fd_read(bp, ptr, 1) > 0)Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(ptr[0] != '\n')Description
TRUEnever evaluated
FALSEnever evaluated
ptr[0] != '\n')
(ptr[0] != '\n')Description
TRUEnever evaluated
FALSEnever evaluated
)
0
184 ptr++;
never executed: ptr++;
0
185-
186 ptr[0] = '\0';-
187-
188 if (buf[0] != '\0'
buf[0] != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
189 ret = strlen(buf);
never executed: ret = strlen(buf);
0
190 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
191}-
192-
193int-
194BIO_fd_should_retry(int i)-
195{-
196 int err;-
197-
198 if ((
(i == 0)Description
TRUEnever evaluated
FALSEnever evaluated
i == 0)
(i == 0)Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(i == -1)Description
TRUEnever evaluated
FALSEnever evaluated
i == -1)
(i == -1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
199 err = -
200 (*__errno_location ())-
201 ;-
202 return
never executed: return (BIO_fd_non_fatal_error(err));
(BIO_fd_non_fatal_error(err));
never executed: return (BIO_fd_non_fatal_error(err));
0
203 }-
204 return
never executed: return (0);
(0);
never executed: return (0);
0
205}-
206-
207int-
208BIO_fd_non_fatal_error(int err)-
209{-
210 switch (err) {-
211 case
never executed: case 107 :
never executed: case 107 :
0
212 107
never executed: case 107 :
0
213 :
never executed: case 107 :
0
214 case
never executed: case 4 :
never executed: case 4 :
0
215 4
never executed: case 4 :
0
216 :
never executed: case 4 :
0
217 case
never executed: case 11 :
never executed: case 11 :
0
218 11
never executed: case 11 :
0
219 :
never executed: case 11 :
0
220 case
never executed: case 115 :
never executed: case 115 :
0
221 115
never executed: case 115 :
0
222 :
never executed: case 115 :
0
223 case
never executed: case 114 :
never executed: case 114 :
0
224 114
never executed: case 114 :
0
225 :
never executed: case 114 :
0
226 return
never executed: return (1);
(1);
never executed: return (1);
0
227 default
never executed: default:
:
never executed: default:
0
228 break;
never executed: break;
0
229 }-
230 return
never executed: return (0);
(0);
never executed: return (0);
0
231}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2