Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | char * | - |
21 | chop(char *s) | - |
22 | { | - |
23 | char *t = s; | - |
24 | while (*TRUE | evaluated 2560 times by 1 test | FALSE | never evaluated |
tTRUE | evaluated 2560 times by 1 test | FALSE | never evaluated |
) { | 0-2560 |
25 | if (*TRUE | evaluated 64 times by 1 test | FALSE | evaluated 2496 times by 1 test |
t == '\n'TRUE | evaluated 64 times by 1 test | FALSE | evaluated 2496 times by 1 test |
|| *TRUE | evaluated 64 times by 1 test | FALSE | evaluated 2432 times by 1 test |
t == '\r'TRUE | evaluated 64 times by 1 test | FALSE | evaluated 2432 times by 1 test |
) { | 64-2496 |
26 | *t = '\0'; | - |
27 | returnexecuted 128 times by 1 test: return s; s;executed 128 times by 1 test: return s; | 128 |
28 | } | - |
29 | t++; | - |
30 | }executed 2432 times by 1 test: end of block | 2432 |
31 | return never executed: return s; s;never executed: return s; | 0 |
32 | | - |
33 | } | - |
34 | | - |
35 | | - |
36 | int | - |
37 | set_nonblock(int fd) | - |
38 | { | - |
39 | int val; | - |
40 | | - |
41 | val = fcntl(fd, | - |
42 | 3 | - |
43 | ); | - |
44 | if (val < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
45 | error("fcntl(%d, F_GETFL): %s", fd, strerror( | - |
46 | (*__errno_location ()) | - |
47 | )); | - |
48 | return never executed: return (-1); (-1);never executed: return (-1); | 0 |
49 | } | - |
50 | if (val & TRUE | never evaluated | FALSE | never evaluated |
| 0 |
51 | 04000TRUE | never evaluated | FALSE | never evaluated |
| 0 |
52 | ) { | - |
53 | debug3("fd %d is O_NONBLOCK", fd); | - |
54 | return never executed: return (0); (0);never executed: return (0); | 0 |
55 | } | - |
56 | debug2("fd %d setting O_NONBLOCK", fd); | - |
57 | val |= | - |
58 | 04000 | - |
59 | ; | - |
60 | if (fcntl(fd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
61 | 4TRUE | never evaluated | FALSE | never evaluated |
| 0 |
62 | , val) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
63 | debug("fcntl(%d, F_SETFL, O_NONBLOCK): %s", fd, | - |
64 | strerror( | - |
65 | (*__errno_location ()) | - |
66 | )); | - |
67 | return never executed: return (-1); (-1);never executed: return (-1); | 0 |
68 | } | - |
69 | return never executed: return (0); (0);never executed: return (0); | 0 |
70 | } | - |
71 | | - |
72 | int | - |
73 | unset_nonblock(int fd) | - |
74 | { | - |
75 | int val; | - |
76 | | - |
77 | val = fcntl(fd, | - |
78 | 3 | - |
79 | ); | - |
80 | if (val < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
81 | error("fcntl(%d, F_GETFL): %s", fd, strerror( | - |
82 | (*__errno_location ()) | - |
83 | )); | - |
84 | return never executed: return (-1); (-1);never executed: return (-1); | 0 |
85 | } | - |
86 | if (!(val & TRUE | never evaluated | FALSE | never evaluated |
| 0 |
87 | 04000TRUE | never evaluated | FALSE | never evaluated |
| 0 |
88 | )TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
89 | debug3("fd %d is not O_NONBLOCK", fd); | - |
90 | return never executed: return (0); (0);never executed: return (0); | 0 |
91 | } | - |
92 | debug("fd %d clearing O_NONBLOCK", fd); | - |
93 | val &= ~ | - |
94 | 04000 | - |
95 | ; | - |
96 | if (fcntl(fd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
97 | 4TRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | , val) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
99 | debug("fcntl(%d, F_SETFL, ~O_NONBLOCK): %s", | - |
100 | fd, strerror( | - |
101 | (*__errno_location ()) | - |
102 | )); | - |
103 | return never executed: return (-1); (-1);never executed: return (-1); | 0 |
104 | } | - |
105 | return never executed: return (0); (0);never executed: return (0); | 0 |
106 | } | - |
107 | | - |
108 | const char * | - |
109 | ssh_gai_strerror(int gaierr) | - |
110 | { | - |
111 | if (gaierr == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
112 | -11TRUE | never evaluated | FALSE | never evaluated |
| 0 |
113 | && | - |
114 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
115 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
116 | return never executed: return strerror( (*__errno_location ()) ); strerror(never executed: return strerror( (*__errno_location ()) ); | 0 |
117 | (*__errno_location ()) never executed: return strerror( (*__errno_location ()) ); | 0 |
118 | ); never executed: return strerror( (*__errno_location ()) ); | 0 |
119 | return never executed: return gai_strerror(gaierr); gai_strerror(gaierr);never executed: return gai_strerror(gaierr); | 0 |
120 | } | - |
121 | | - |
122 | | - |
123 | void | - |
124 | set_nodelay(int fd) | - |
125 | { | - |
126 | int opt; | - |
127 | socklen_t optlen; | - |
128 | | - |
129 | optlen = sizeof opt; | - |
130 | if (getsockopt(fd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
131 | IPPROTO_TCPTRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
133 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
134 | , &opt, &optlen) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
135 | debug("getsockopt TCP_NODELAY: %.100s", strerror( | - |
136 | (*__errno_location ()) | - |
137 | )); | - |
138 | return; never executed: return; | 0 |
139 | } | - |
140 | if (opt == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
141 | debug2("fd %d is TCP_NODELAY", fd); | - |
142 | return; never executed: return; | 0 |
143 | } | - |
144 | opt = 1; | - |
145 | debug2("fd %d setting TCP_NODELAY", fd); | - |
146 | if (setsockopt(fd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | IPPROTO_TCPTRUE | never evaluated | FALSE | never evaluated |
| 0 |
148 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
150 | , &opt, sizeof opt) == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
151 | error("setsockopt TCP_NODELAY: %.100s", strerror( never executed: error("setsockopt TCP_NODELAY: %.100s", strerror( (*__errno_location ()) )); | 0 |
152 | (*__errno_location ()) never executed: error("setsockopt TCP_NODELAY: %.100s", strerror( (*__errno_location ()) )); | 0 |
153 | )); never executed: error("setsockopt TCP_NODELAY: %.100s", strerror( (*__errno_location ()) )); | 0 |
154 | } never executed: end of block | 0 |
155 | | - |
156 | | - |
157 | int | - |
158 | set_reuseaddr(int fd) | - |
159 | { | - |
160 | int on = 1; | - |
161 | | - |
162 | if (setsockopt(fd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
163 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
164 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | 2TRUE | never evaluated | FALSE | never evaluated |
| 0 |
166 | , &on, sizeof(on)) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
167 | error("setsockopt SO_REUSEADDR fd %d: %s", fd, strerror( | - |
168 | (*__errno_location ()) | - |
169 | )); | - |
170 | return never executed: return -1; -1;never executed: return -1; | 0 |
171 | } | - |
172 | return never executed: return 0; 0;never executed: return 0; | 0 |
173 | } | - |
174 | | - |
175 | | - |
176 | char * | - |
177 | get_rdomain(int fd) | - |
178 | { | - |
179 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
180 | ((void *)0) never executed: return ((void *)0) ; | 0 |
181 | ; never executed: return ((void *)0) ; | 0 |
182 | | - |
183 | } | - |
184 | | - |
185 | int | - |
186 | set_rdomain(int fd, const char *name) | - |
187 | { | - |
188 | error("Setting routing domain is not supported on this platform"); | - |
189 | return never executed: return -1; -1;never executed: return -1; | 0 |
190 | | - |
191 | } | - |
192 | | - |
193 | | - |
194 | | - |
195 | | - |
196 | | - |
197 | | - |
198 | static char * | - |
199 | strdelim_internal(char **s, int split_equals) | - |
200 | { | - |
201 | char *old; | - |
202 | int wspace = 0; | - |
203 | | - |
204 | if (*TRUE | evaluated 33 times by 1 test | FALSE | evaluated 52 times by 1 test |
s == TRUE | evaluated 33 times by 1 test | FALSE | evaluated 52 times by 1 test |
| 33-52 |
205 | ((void *)0)TRUE | evaluated 33 times by 1 test | FALSE | evaluated 52 times by 1 test |
| 33-52 |
206 | ) | - |
207 | returnexecuted 33 times by 1 test: return ((void *)0) ; executed 33 times by 1 test: return ((void *)0) ; | 33 |
208 | ((void *)0)executed 33 times by 1 test: return ((void *)0) ; | 33 |
209 | ;executed 33 times by 1 test: return ((void *)0) ; | 33 |
210 | | - |
211 | old = *s; | - |
212 | | - |
213 | *s = | - |
214 | __builtin_strpbrk ( | - |
215 | *s | - |
216 | , | - |
217 | split_equals ? " \t\r\n" "\"" "=" : " \t\r\n" "\"" | - |
218 | ) | - |
219 | | - |
220 | ; | - |
221 | if (*TRUE | evaluated 25 times by 1 test | FALSE | evaluated 27 times by 1 test |
s == TRUE | evaluated 25 times by 1 test | FALSE | evaluated 27 times by 1 test |
| 25-27 |
222 | ((void *)0)TRUE | evaluated 25 times by 1 test | FALSE | evaluated 27 times by 1 test |
| 25-27 |
223 | ) | - |
224 | returnexecuted 25 times by 1 test: return (old); (old);executed 25 times by 1 test: return (old); | 25 |
225 | | - |
226 | if (*TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
s[0] == '\"'TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
) { | 0-27 |
227 | memmove(*s, *s + 1, strlen(*s)); | - |
228 | | - |
229 | if ((*TRUE | never evaluated | FALSE | never evaluated |
s = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
230 | __builtin_strpbrk (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
231 | *sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
232 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
233 | "\""TRUE | never evaluated | FALSE | never evaluated |
| 0 |
234 | )TRUE | never evaluated | FALSE | never evaluated |
| 0 |
235 | ) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
236 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | ) { | - |
238 | return never executed: return ( ((void *)0) ); (never executed: return ( ((void *)0) ); | 0 |
239 | ((void *)0) never executed: return ( ((void *)0) ); | 0 |
240 | ); never executed: return ( ((void *)0) ); | 0 |
241 | } else { | - |
242 | *s[0] = '\0'; | - |
243 | *s += | - |
244 | __builtin_strspn ( | - |
245 | *s + 1 | - |
246 | , | - |
247 | " \t\r\n" | - |
248 | ) | - |
249 | + 1; | - |
250 | return never executed: return (old); (old);never executed: return (old); | 0 |
251 | } | - |
252 | } | - |
253 | | - |
254 | | - |
255 | if (split_equalsTRUE | evaluated 27 times by 1 test | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
s[0] == '='TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
) | 0-27 |
256 | wspace = 1; never executed: wspace = 1; | 0 |
257 | *s[0] = '\0'; | - |
258 | | - |
259 | | - |
260 | *s += | - |
261 | __builtin_strspn ( | - |
262 | *s + 1 | - |
263 | , | - |
264 | " \t\r\n" | - |
265 | ) | - |
266 | + 1; | - |
267 | if (split_equalsTRUE | evaluated 27 times by 1 test | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
s[0] == '='TRUE | never evaluated | FALSE | evaluated 27 times by 1 test |
&& !wspaceTRUE | never evaluated | FALSE | never evaluated |
) | 0-27 |
268 | * never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; s += never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
269 | __builtin_strspn ( never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
270 | *s + 1 never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
271 | , never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
272 | " \t\r\n" never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
273 | ) never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
274 | + 1; never executed: *s += __builtin_strspn ( *s + 1 , " \t\r\n" ) + 1; | 0 |
275 | | - |
276 | returnexecuted 27 times by 1 test: return (old); (old);executed 27 times by 1 test: return (old); | 27 |
277 | } | - |
278 | | - |
279 | | - |
280 | | - |
281 | | - |
282 | | - |
283 | char * | - |
284 | strdelim(char **s) | - |
285 | { | - |
286 | returnexecuted 85 times by 1 test: return strdelim_internal(s, 1); strdelim_internal(s, 1);executed 85 times by 1 test: return strdelim_internal(s, 1); | 85 |
287 | } | - |
288 | | - |
289 | | - |
290 | | - |
291 | | - |
292 | char * | - |
293 | strdelimw(char **s) | - |
294 | { | - |
295 | return never executed: return strdelim_internal(s, 0); strdelim_internal(s, 0);never executed: return strdelim_internal(s, 0); | 0 |
296 | } | - |
297 | | - |
298 | struct passwd * | - |
299 | pwcopy(struct passwd *pw) | - |
300 | { | - |
301 | struct passwd *copy = xcalloc(1, sizeof(*copy)); | - |
302 | | - |
303 | copy->pw_name = xstrdup(pw->pw_name); | - |
304 | copy->pw_passwd = xstrdup(pw->pw_passwd); | - |
305 | | - |
306 | copy->pw_gecos = xstrdup(pw->pw_gecos); | - |
307 | | - |
308 | copy->pw_uid = pw->pw_uid; | - |
309 | copy->pw_gid = pw->pw_gid; | - |
310 | copy->pw_dir = xstrdup(pw->pw_dir); | - |
311 | copy->pw_shell = xstrdup(pw->pw_shell); | - |
312 | returnexecuted 2 times by 1 test: return copy; copy;executed 2 times by 1 test: return copy; | 2 |
313 | } | - |
314 | | - |
315 | | - |
316 | | - |
317 | | - |
318 | | - |
319 | | - |
320 | int | - |
321 | a2port(const char *s) | - |
322 | { | - |
323 | long long port; | - |
324 | const char *errstr; | - |
325 | | - |
326 | port = strtonum(s, 0, 65535, &errstr); | - |
327 | if (errstr != TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
328 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
329 | ) | - |
330 | return never executed: return -1; -1;never executed: return -1; | 0 |
331 | returnexecuted 2 times by 1 test: return (int)port; (int)port;executed 2 times by 1 test: return (int)port; | 2 |
332 | } | - |
333 | | - |
334 | int | - |
335 | a2tun(const char *s, int *remote) | - |
336 | { | - |
337 | const char *errstr = | - |
338 | ((void *)0) | - |
339 | ; | - |
340 | char *sp, *ep; | - |
341 | int tun; | - |
342 | | - |
343 | if (remote != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
344 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
345 | ) { | - |
346 | *remote = 0x7fffffff; | - |
347 | sp = xstrdup(s); | - |
348 | if ((TRUE | never evaluated | FALSE | never evaluated |
ep = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
349 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
350 | ':'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
351 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
352 | spTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
353 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
354 | ':'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
355 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
356 | spTRUE | never evaluated | FALSE | never evaluated |
| 0 |
357 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
358 | ':'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
359 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
360 | spTRUE | never evaluated | FALSE | never evaluated |
| 0 |
361 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
362 | ':'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
363 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
364 | ) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
365 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
366 | ) { | - |
367 | free(sp); | - |
368 | return never executed: return (a2tun(s, ((void *)0) )); (a2tun(s, never executed: return (a2tun(s, ((void *)0) )); | 0 |
369 | ((void *)0) never executed: return (a2tun(s, ((void *)0) )); | 0 |
370 | )); never executed: return (a2tun(s, ((void *)0) )); | 0 |
371 | } | - |
372 | ep[0] = '\0'; ep++; | - |
373 | *remote = a2tun(ep, | - |
374 | ((void *)0) | - |
375 | ); | - |
376 | tun = a2tun(sp, | - |
377 | ((void *)0) | - |
378 | ); | - |
379 | free(sp); | - |
380 | return never executed: return (*remote == (0x7fffffff - 1) ? *remote : tun); (*TRUE | never evaluated | FALSE | never evaluated |
remote == (0x7fffffff - 1)TRUE | never evaluated | FALSE | never evaluated |
? *remote : tun);never executed: return (*remote == (0x7fffffff - 1) ? *remote : tun); | 0 |
381 | } | - |
382 | | - |
383 | if (strcasecmp(s, "any") == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
384 | return never executed: return (0x7fffffff); (0x7fffffff);never executed: return (0x7fffffff); | 0 |
385 | | - |
386 | tun = strtonum(s, 0, (0x7fffffff - 2), &errstr); | - |
387 | if (errstr != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
388 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
389 | ) | - |
390 | return never executed: return ((0x7fffffff - 1)); ((0x7fffffff - 1));never executed: return ((0x7fffffff - 1)); | 0 |
391 | | - |
392 | return never executed: return (tun); (tun);never executed: return (tun); | 0 |
393 | } | - |
394 | long | - |
395 | convtime(const char *s) | - |
396 | { | - |
397 | long total, secs, multiplier = 1; | - |
398 | const char *p; | - |
399 | char *endp; | - |
400 | | - |
401 | | - |
402 | (*__errno_location ()) | - |
403 | = 0; | - |
404 | total = 0; | - |
405 | p = s; | - |
406 | | - |
407 | if (p == TRUE | never evaluated | FALSE | evaluated 12 times by 1 test |
| 0-12 |
408 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 12 times by 1 test |
| 0-12 |
409 | || *TRUE | never evaluated | FALSE | evaluated 12 times by 1 test |
p == '\0'TRUE | never evaluated | FALSE | evaluated 12 times by 1 test |
) | 0-12 |
410 | return never executed: return -1; -1;never executed: return -1; | 0 |
411 | | - |
412 | while (*TRUE | evaluated 13 times by 1 test | FALSE | evaluated 7 times by 1 test |
pTRUE | evaluated 13 times by 1 test | FALSE | evaluated 7 times by 1 test |
) { | 7-13 |
413 | secs = strtol(p, &endp, 10); | - |
414 | if (p == endpTRUE | never evaluated | FALSE | evaluated 13 times by 1 test |
|| | 0-13 |
415 | ( | - |
416 | (*TRUE | evaluated 2 times by 1 test | FALSE | evaluated 11 times by 1 test |
__errno_location ()) TRUE | evaluated 2 times by 1 test | FALSE | evaluated 11 times by 1 test |
| 2-11 |
417 | == TRUE | evaluated 2 times by 1 test | FALSE | evaluated 11 times by 1 test |
| 2-11 |
418 | 34TRUE | evaluated 2 times by 1 test | FALSE | evaluated 11 times by 1 test |
| 2-11 |
419 | && (secs == TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
420 | (-0x7fffffffffffffffL - 1L)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
421 | || secs == 0x7fffffffffffffffLTRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
)) || | 0-2 |
422 | secs < 0TRUE | evaluated 2 times by 1 test | FALSE | evaluated 9 times by 1 test |
) | 2-9 |
423 | returnexecuted 4 times by 1 test: return -1; -1;executed 4 times by 1 test: return -1; | 4 |
424 | | - |
425 | switch (*endp++) { | - |
426 | caseexecuted 2 times by 1 test: case '\0': '\0':executed 2 times by 1 test: case '\0': | 2 |
427 | endp--; | - |
428 | break;executed 2 times by 1 test: break; | 2 |
429 | case never executed: case 's': 's':never executed: case 's': | 0 |
430 | caseexecuted 1 time by 1 test: case 'S': 'S':executed 1 time by 1 test: case 'S': | 1 |
431 | break;executed 1 time by 1 test: break; | 1 |
432 | caseexecuted 2 times by 1 test: case 'm': 'm':executed 2 times by 1 test: case 'm': | 2 |
433 | caseexecuted 1 time by 1 test: case 'M': 'M':executed 1 time by 1 test: case 'M': | 1 |
434 | multiplier = (1 * 60); | - |
435 | break;executed 3 times by 1 test: break; | 3 |
436 | caseexecuted 1 time by 1 test: case 'h': 'h':executed 1 time by 1 test: case 'h': | 1 |
437 | case never executed: case 'H': 'H':never executed: case 'H': | 0 |
438 | multiplier = ((1 * 60) * 60); | - |
439 | break;executed 1 time by 1 test: break; | 1 |
440 | caseexecuted 1 time by 1 test: case 'd': 'd':executed 1 time by 1 test: case 'd': | 1 |
441 | case never executed: case 'D': 'D':never executed: case 'D': | 0 |
442 | multiplier = (((1 * 60) * 60) * 24); | - |
443 | break;executed 1 time by 1 test: break; | 1 |
444 | caseexecuted 1 time by 1 test: case 'w': 'w':executed 1 time by 1 test: case 'w': | 1 |
445 | case never executed: case 'W': 'W':never executed: case 'W': | 0 |
446 | multiplier = ((((1 * 60) * 60) * 24) * 7); | - |
447 | break;executed 1 time by 1 test: break; | 1 |
448 | default never executed: default: :never executed: default: | 0 |
449 | return never executed: return -1; -1;never executed: return -1; | 0 |
450 | } | - |
451 | if (secs >= 0x7fffffffffffffffL / multiplierTRUE | evaluated 1 time by 1 test | FALSE | evaluated 8 times by 1 test |
) | 1-8 |
452 | returnexecuted 1 time by 1 test: return -1; -1;executed 1 time by 1 test: return -1; | 1 |
453 | secs *= multiplier; | - |
454 | if (total >= 0x7fffffffffffffffL - secsTRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) | 0-8 |
455 | return never executed: return -1; -1;never executed: return -1; | 0 |
456 | total += secs; | - |
457 | if (total < 0TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) | 0-8 |
458 | return never executed: return -1; -1;never executed: return -1; | 0 |
459 | p = endp; | - |
460 | }executed 8 times by 1 test: end of block | 8 |
461 | | - |
462 | returnexecuted 7 times by 1 test: return total; total;executed 7 times by 1 test: return total; | 7 |
463 | } | - |
464 | | - |
465 | | - |
466 | | - |
467 | | - |
468 | | - |
469 | char * | - |
470 | put_host_port(const char *host, u_short port) | - |
471 | { | - |
472 | char *hoststr; | - |
473 | | - |
474 | if (port == 0TRUE | never evaluated | FALSE | never evaluated |
|| port == 22TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
475 | return never executed: return(xstrdup(host)); (xstrdup(host));never executed: return(xstrdup(host)); | 0 |
476 | if (asprintf(&hoststr, "[%s]:%d", host, (int)port) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
477 | fatal("put_host_port: asprintf: %s", strerror( never executed: fatal("put_host_port: asprintf: %s", strerror( (*__errno_location ()) )); | 0 |
478 | (*__errno_location ()) never executed: fatal("put_host_port: asprintf: %s", strerror( (*__errno_location ()) )); | 0 |
479 | )); never executed: fatal("put_host_port: asprintf: %s", strerror( (*__errno_location ()) )); | 0 |
480 | debug3("put_host_port: %s", hoststr); | - |
481 | return never executed: return hoststr; hoststr;never executed: return hoststr; | 0 |
482 | } | - |
483 | static char * | - |
484 | hpdelim2(char **cp, char *delim) | - |
485 | { | - |
486 | char *s, *old; | - |
487 | | - |
488 | if (cp == TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
489 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
490 | || *TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
cp == TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
491 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
492 | ) | - |
493 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
494 | ((void *)0) never executed: return ((void *)0) ; | 0 |
495 | ; never executed: return ((void *)0) ; | 0 |
496 | | - |
497 | old = s = *cp; | - |
498 | if (*TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
s == '['TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
) { | 0-2 |
499 | if ((TRUE | never evaluated | FALSE | never evaluated |
s = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
500 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
501 | ']'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
502 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
503 | sTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
504 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
505 | ']'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
506 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
507 | sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
508 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
509 | ']'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
510 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
511 | sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
512 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
513 | ']'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
514 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
515 | ) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
516 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
517 | ) | - |
518 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
519 | ((void *)0) never executed: return ((void *)0) ; | 0 |
520 | ; never executed: return ((void *)0) ; | 0 |
521 | else | - |
522 | s++; never executed: s++; | 0 |
523 | } else if ((TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
s = TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
524 | __builtin_strpbrk (TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
525 | sTRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
526 | , TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
527 | ":/"TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
528 | )TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
529 | ) == TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
530 | ((void *)0)TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
531 | ) | - |
532 | s = *cp + strlen(*cp);executed 2 times by 1 test: s = *cp + strlen(*cp); | 2 |
533 | | - |
534 | switch (*s) { | - |
535 | caseexecuted 2 times by 1 test: case '\0': '\0':executed 2 times by 1 test: case '\0': | 2 |
536 | *cp = | - |
537 | ((void *)0) | - |
538 | ; | - |
539 | break;executed 2 times by 1 test: break; | 2 |
540 | | - |
541 | case never executed: case ':': ':':never executed: case ':': | 0 |
542 | case never executed: case '/': '/':never executed: case '/': | 0 |
543 | if (delim != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
544 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
545 | ) | - |
546 | * never executed: *delim = *s; delim = *s;never executed: *delim = *s; | 0 |
547 | *s = '\0'; | - |
548 | *cp = s + 1; | - |
549 | break; never executed: break; | 0 |
550 | | - |
551 | default never executed: default: :never executed: default: | 0 |
552 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
553 | ((void *)0) never executed: return ((void *)0) ; | 0 |
554 | ; never executed: return ((void *)0) ; | 0 |
555 | } | - |
556 | | - |
557 | returnexecuted 2 times by 1 test: return old; old;executed 2 times by 1 test: return old; | 2 |
558 | } | - |
559 | | - |
560 | char * | - |
561 | hpdelim(char **cp) | - |
562 | { | - |
563 | returnexecuted 2 times by 1 test: return hpdelim2(cp, ((void *)0) ); hpdelim2(cp, executed 2 times by 1 test: return hpdelim2(cp, ((void *)0) ); | 2 |
564 | ((void *)0)executed 2 times by 1 test: return hpdelim2(cp, ((void *)0) ); | 2 |
565 | );executed 2 times by 1 test: return hpdelim2(cp, ((void *)0) ); | 2 |
566 | } | - |
567 | | - |
568 | char * | - |
569 | cleanhostname(char *host) | - |
570 | { | - |
571 | if (*TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
host == '['TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
&& host[strlen(host) - 1] == ']'TRUE | never evaluated | FALSE | never evaluated |
) { | 0-2 |
572 | host[strlen(host) - 1] = '\0'; | - |
573 | return never executed: return (host + 1); (host + 1);never executed: return (host + 1); | 0 |
574 | } else | - |
575 | returnexecuted 2 times by 1 test: return host; host;executed 2 times by 1 test: return host; | 2 |
576 | } | - |
577 | | - |
578 | char * | - |
579 | colon(char *cp) | - |
580 | { | - |
581 | int flag = 0; | - |
582 | | - |
583 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == ':'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
584 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
585 | ((void *)0) never executed: return ((void *)0) ; | 0 |
586 | ; never executed: return ((void *)0) ; | 0 |
587 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '['TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
588 | flag = 1; never executed: flag = 1; | 0 |
589 | | - |
590 | for (; *TRUE | never evaluated | FALSE | never evaluated |
cpTRUE | never evaluated | FALSE | never evaluated |
; ++cp) { | 0 |
591 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '@'TRUE | never evaluated | FALSE | never evaluated |
&& *(TRUE | never evaluated | FALSE | never evaluated |
cp+1) == '['TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
592 | flag = 1; never executed: flag = 1; | 0 |
593 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == ']'TRUE | never evaluated | FALSE | never evaluated |
&& *(TRUE | never evaluated | FALSE | never evaluated |
cp+1) == ':'TRUE | never evaluated | FALSE | never evaluated |
&& flagTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
594 | return never executed: return (cp+1); (cp+1);never executed: return (cp+1); | 0 |
595 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == ':'TRUE | never evaluated | FALSE | never evaluated |
&& !flagTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
596 | return never executed: return (cp); (cp);never executed: return (cp); | 0 |
597 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '/'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
598 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
599 | ((void *)0) never executed: return ((void *)0) ; | 0 |
600 | ; never executed: return ((void *)0) ; | 0 |
601 | } never executed: end of block | 0 |
602 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
603 | ((void *)0) never executed: return ((void *)0) ; | 0 |
604 | ; never executed: return ((void *)0) ; | 0 |
605 | } | - |
606 | int | - |
607 | parse_user_host_path(const char *s, char **userp, char **hostp, char **pathp) | - |
608 | { | - |
609 | char *user = | - |
610 | ((void *)0) | - |
611 | , *host = | - |
612 | ((void *)0) | - |
613 | , *path = | - |
614 | ((void *)0) | - |
615 | ; | - |
616 | char *sdup, *tmp; | - |
617 | int ret = -1; | - |
618 | | - |
619 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
620 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
621 | ) | - |
622 | * never executed: *userp = ((void *)0) ; userp = never executed: *userp = ((void *)0) ; | 0 |
623 | ((void *)0) never executed: *userp = ((void *)0) ; | 0 |
624 | ; never executed: *userp = ((void *)0) ; | 0 |
625 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
626 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
627 | ) | - |
628 | * never executed: *hostp = ((void *)0) ; hostp = never executed: *hostp = ((void *)0) ; | 0 |
629 | ((void *)0) never executed: *hostp = ((void *)0) ; | 0 |
630 | ; never executed: *hostp = ((void *)0) ; | 0 |
631 | if (pathp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
632 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
633 | ) | - |
634 | * never executed: *pathp = ((void *)0) ; pathp = never executed: *pathp = ((void *)0) ; | 0 |
635 | ((void *)0) never executed: *pathp = ((void *)0) ; | 0 |
636 | ; never executed: *pathp = ((void *)0) ; | 0 |
637 | | - |
638 | sdup = xstrdup(s); | - |
639 | | - |
640 | | - |
641 | if ((TRUE | never evaluated | FALSE | never evaluated |
tmp = colon(sdup)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
642 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
643 | ) | - |
644 | goto never executed: goto out; out;never executed: goto out; | 0 |
645 | | - |
646 | | - |
647 | *tmp++ = '\0'; | - |
648 | if (*TRUE | never evaluated | FALSE | never evaluated |
tmp == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
649 | tmp = "."; never executed: tmp = "."; | 0 |
650 | path = xstrdup(tmp); | - |
651 | | - |
652 | | - |
653 | tmp = strrchr(sdup, '@'); | - |
654 | if (tmp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
655 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
656 | ) { | - |
657 | *tmp++ = '\0'; | - |
658 | host = xstrdup(cleanhostname(tmp)); | - |
659 | if (*TRUE | never evaluated | FALSE | never evaluated |
sdup != '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
660 | user = xstrdup(sdup); never executed: user = xstrdup(sdup); | 0 |
661 | } never executed: end of block else { | 0 |
662 | host = xstrdup(cleanhostname(sdup)); | - |
663 | user = | - |
664 | ((void *)0) | - |
665 | ; | - |
666 | } never executed: end of block | 0 |
667 | | - |
668 | | - |
669 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
670 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
671 | ) { | - |
672 | *userp = user; | - |
673 | user = | - |
674 | ((void *)0) | - |
675 | ; | - |
676 | } never executed: end of block | 0 |
677 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
678 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
679 | ) { | - |
680 | *hostp = host; | - |
681 | host = | - |
682 | ((void *)0) | - |
683 | ; | - |
684 | } never executed: end of block | 0 |
685 | if (pathp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
686 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
687 | ) { | - |
688 | *pathp = path; | - |
689 | path = | - |
690 | ((void *)0) | - |
691 | ; | - |
692 | } never executed: end of block | 0 |
693 | ret = 0; | - |
694 | out: code before this statement never executed: out: | 0 |
695 | free(sdup); | - |
696 | free(user); | - |
697 | free(host); | - |
698 | free(path); | - |
699 | return never executed: return ret; ret;never executed: return ret; | 0 |
700 | } | - |
701 | int | - |
702 | parse_user_host_port(const char *s, char **userp, char **hostp, int *portp) | - |
703 | { | - |
704 | char *sdup, *cp, *tmp; | - |
705 | char *user = | - |
706 | ((void *)0) | - |
707 | , *host = | - |
708 | ((void *)0) | - |
709 | ; | - |
710 | int port = -1, ret = -1; | - |
711 | | - |
712 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
713 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
714 | ) | - |
715 | * never executed: *userp = ((void *)0) ; userp = never executed: *userp = ((void *)0) ; | 0 |
716 | ((void *)0) never executed: *userp = ((void *)0) ; | 0 |
717 | ; never executed: *userp = ((void *)0) ; | 0 |
718 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
719 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
720 | ) | - |
721 | * never executed: *hostp = ((void *)0) ; hostp = never executed: *hostp = ((void *)0) ; | 0 |
722 | ((void *)0) never executed: *hostp = ((void *)0) ; | 0 |
723 | ; never executed: *hostp = ((void *)0) ; | 0 |
724 | if (portp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
725 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
726 | ) | - |
727 | * never executed: *portp = -1; portp = -1;never executed: *portp = -1; | 0 |
728 | | - |
729 | if ((TRUE | never evaluated | FALSE | never evaluated |
sdup = tmp = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
730 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
731 | sTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
732 | )TRUE | never evaluated | FALSE | never evaluated |
&& ((TRUE | never evaluated | FALSE | never evaluated |
size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
733 | sTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
734 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
735 | sTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
736 | ) == 1)TRUE | never evaluated | FALSE | never evaluated |
? (((constTRUE | never evaluated | FALSE | never evaluated |
char *) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
737 | sTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
738 | ))[0] == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) calloc ((size_t) 1, (size_t) 1) : ({ size_t __len = strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
739 | sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
740 | ) + 1; char *__retval = (char *) malloc (__len); if (__retval != ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
) __retval = (char *) memcpy (__retval, never executed: __retval = (char *) memcpy (__retval, s , __len); | 0 |
741 | sTRUE | never evaluated | FALSE | never evaluated |
never executed: __retval = (char *) memcpy (__retval, s , __len); | 0 |
742 | , __len); __retval; })) : __strdup (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
743 | sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
744 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
745 | ) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
746 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
747 | ) | - |
748 | return never executed: return -1; -1;never executed: return -1; | 0 |
749 | | - |
750 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = strrchr(tmp, '@')) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
751 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
752 | ) { | - |
753 | *cp = '\0'; | - |
754 | if (*TRUE | never evaluated | FALSE | never evaluated |
tmp == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
755 | goto never executed: goto out; out;never executed: goto out; | 0 |
756 | if ((TRUE | never evaluated | FALSE | never evaluated |
user = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
757 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
758 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
759 | )TRUE | never evaluated | FALSE | never evaluated |
&& ((TRUE | never evaluated | FALSE | never evaluated |
size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
760 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
761 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
762 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
763 | ) == 1)TRUE | never evaluated | FALSE | never evaluated |
? (((constTRUE | never evaluated | FALSE | never evaluated |
char *) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
764 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
765 | ))[0] == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) calloc ((size_t) 1, (size_t) 1) : ({ size_t __len = strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
766 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
767 | ) + 1; char *__retval = (char *) malloc (__len); if (__retval != ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
) __retval = (char *) memcpy (__retval, never executed: __retval = (char *) memcpy (__retval, tmp , __len); | 0 |
768 | tmpTRUE | never evaluated | FALSE | never evaluated |
never executed: __retval = (char *) memcpy (__retval, tmp , __len); | 0 |
769 | , __len); __retval; })) : __strdup (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
770 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
771 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
772 | ) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
773 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
774 | ) | - |
775 | goto never executed: goto out; out;never executed: goto out; | 0 |
776 | tmp = cp + 1; | - |
777 | } never executed: end of block | 0 |
778 | | - |
779 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = hpdelim(&tmp)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
780 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
781 | || *TRUE | never evaluated | FALSE | never evaluated |
cp == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
782 | goto never executed: goto out; out;never executed: goto out; | 0 |
783 | host = xstrdup(cleanhostname(cp)); | - |
784 | | - |
785 | if (tmp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
786 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
787 | && *TRUE | never evaluated | FALSE | never evaluated |
tmp != '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
788 | if ((TRUE | never evaluated | FALSE | never evaluated |
port = a2port(tmp)) <= 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
789 | goto never executed: goto out; out;never executed: goto out; | 0 |
790 | } never executed: end of block | 0 |
791 | | - |
792 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
793 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
794 | ) { | - |
795 | *userp = user; | - |
796 | user = | - |
797 | ((void *)0) | - |
798 | ; | - |
799 | } never executed: end of block | 0 |
800 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
801 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
802 | ) { | - |
803 | *hostp = host; | - |
804 | host = | - |
805 | ((void *)0) | - |
806 | ; | - |
807 | } never executed: end of block | 0 |
808 | if (portp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
809 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
810 | ) | - |
811 | * never executed: *portp = port; portp = port;never executed: *portp = port; | 0 |
812 | ret = 0; | - |
813 | out: code before this statement never executed: out: | 0 |
814 | free(sdup); | - |
815 | free(user); | - |
816 | free(host); | - |
817 | return never executed: return ret; ret;never executed: return ret; | 0 |
818 | } | - |
819 | | - |
820 | | - |
821 | | - |
822 | | - |
823 | | - |
824 | static int | - |
825 | hexchar(const char *s) | - |
826 | { | - |
827 | unsigned char result[2]; | - |
828 | int i; | - |
829 | | - |
830 | for (i = 0; i < 2TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
831 | if (s[i] >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& s[i] <= '9'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
832 | result[i] = (unsigned char)(s[i] - '0'); never executed: result[i] = (unsigned char)(s[i] - '0'); | 0 |
833 | else if (s[i] >= 'a'TRUE | never evaluated | FALSE | never evaluated |
&& s[i] <= 'f'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
834 | result[i] = (unsigned char)(s[i] - 'a') + 10; never executed: result[i] = (unsigned char)(s[i] - 'a') + 10; | 0 |
835 | else if (s[i] >= 'A'TRUE | never evaluated | FALSE | never evaluated |
&& s[i] <= 'F'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
836 | result[i] = (unsigned char)(s[i] - 'A') + 10; never executed: result[i] = (unsigned char)(s[i] - 'A') + 10; | 0 |
837 | else | - |
838 | return never executed: return -1; -1;never executed: return -1; | 0 |
839 | } | - |
840 | return never executed: return (result[0] << 4) | result[1]; (result[0] << 4) | result[1];never executed: return (result[0] << 4) | result[1]; | 0 |
841 | } | - |
842 | | - |
843 | | - |
844 | | - |
845 | | - |
846 | | - |
847 | static char * | - |
848 | urldecode(const char *src) | - |
849 | { | - |
850 | char *ret, *dst; | - |
851 | int ch; | - |
852 | | - |
853 | ret = xmalloc(strlen(src) + 1); | - |
854 | for (dst = ret; *TRUE | never evaluated | FALSE | never evaluated |
src != '\0'TRUE | never evaluated | FALSE | never evaluated |
; src++) { | 0 |
855 | switch (*src) { | - |
856 | case never executed: case '+': '+':never executed: case '+': | 0 |
857 | *dst++ = ' '; | - |
858 | break; never executed: break; | 0 |
859 | case never executed: case '%': '%':never executed: case '%': | 0 |
860 | if (!TRUE | never evaluated | FALSE | never evaluated |
| 0 |
861 | ((*__ctype_b_loc ())[(int) ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
862 | (unsigned char)src[1]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
863 | ))] & (unsigned short int) _ISxdigit)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
864 | || | - |
865 | !TRUE | never evaluated | FALSE | never evaluated |
| 0 |
866 | ((*__ctype_b_loc ())[(int) ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
867 | (unsigned char)src[2]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
868 | ))] & (unsigned short int) _ISxdigit)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
869 | || | - |
870 | (TRUE | never evaluated | FALSE | never evaluated |
ch = hexchar(src + 1)) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
871 | free(ret); | - |
872 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
873 | ((void *)0) never executed: return ((void *)0) ; | 0 |
874 | ; never executed: return ((void *)0) ; | 0 |
875 | } | - |
876 | *dst++ = ch; | - |
877 | src += 2; | - |
878 | break; never executed: break; | 0 |
879 | default never executed: default: :never executed: default: | 0 |
880 | *dst++ = *src; | - |
881 | break; never executed: break; | 0 |
882 | } | - |
883 | } | - |
884 | *dst = '\0'; | - |
885 | | - |
886 | return never executed: return ret; ret;never executed: return ret; | 0 |
887 | } | - |
888 | int | - |
889 | parse_uri(const char *scheme, const char *uri, char **userp, char **hostp, | - |
890 | int *portp, char **pathp) | - |
891 | { | - |
892 | char *uridup, *cp, *tmp, ch; | - |
893 | char *user = | - |
894 | ((void *)0) | - |
895 | , *host = | - |
896 | ((void *)0) | - |
897 | , *path = | - |
898 | ((void *)0) | - |
899 | ; | - |
900 | int port = -1, ret = -1; | - |
901 | size_t len; | - |
902 | | - |
903 | len = strlen(scheme); | - |
904 | if ( | - |
905 | (TRUE | never evaluated | FALSE | never evaluated |
__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
906 | lenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
907 | )TRUE | never evaluated | FALSE | never evaluated |
&& ((__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
908 | uriTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
909 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
910 | uriTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
911 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
912 | lenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
913 | ))TRUE | never evaluated | FALSE | never evaluated |
) || (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
914 | schemeTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
915 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
916 | schemeTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
917 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
918 | lenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
919 | ))TRUE | never evaluated | FALSE | never evaluated |
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
920 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
921 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
922 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
923 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
924 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
925 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
926 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
927 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
928 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
929 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
930 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
931 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
932 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
933 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
934 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
935 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
936 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
937 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
938 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
939 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
940 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
941 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
942 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
943 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
944 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
945 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
946 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
947 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
948 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
949 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
950 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
951 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
952 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
953 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
954 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
955 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
956 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
957 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
958 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
959 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
960 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
961 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
962 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
963 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
964 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
965 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( uri ))[3] - __s2[3]); | 0 |
966 | uriTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( uri ))[3] - __s2[3]); | 0 |
967 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
968 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
969 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
970 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
971 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
972 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
973 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
974 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
975 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
976 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
977 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
978 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
979 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
980 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
981 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
982 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
983 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
984 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
985 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
986 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
987 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
988 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
989 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
990 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
991 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
992 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
993 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( scheme ))[3] - __s2[3]); | 0 |
994 | schemeTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( scheme ))[3] - __s2[3]); | 0 |
995 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
996 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
997 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
998 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
999 | )))); }) : strncmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1000 | uriTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1001 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1002 | schemeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1003 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1004 | lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1005 | ))) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1006 | != 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
1007 | (TRUE | never evaluated | FALSE | never evaluated |
__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1008 | 3TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1009 | )TRUE | never evaluated | FALSE | never evaluated |
&& ((__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1010 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1011 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1012 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1013 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1014 | 3TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1015 | ))TRUE | never evaluated | FALSE | never evaluated |
) || (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1016 | "://"TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1017 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1018 | "://"TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1019 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1020 | 3TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1021 | ))TRUE | never evaluated | FALSE | never evaluated |
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1022 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1023 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1024 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1025 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1026 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1027 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1028 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1029 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1030 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1031 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1032 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1033 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1034 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1035 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1036 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1037 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1038 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1039 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1040 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1041 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1042 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1043 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1044 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1045 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1046 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1047 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1048 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1049 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1050 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1051 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1052 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1053 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1054 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1055 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1056 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1057 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1058 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1059 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1060 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1061 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1062 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1063 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1064 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1065 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1066 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1067 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( uri + len ))[3] - __s2[3]); | 0 |
1068 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( uri + len ))[3] - __s2[3]); | 0 |
1069 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1070 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1071 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1072 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1073 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1074 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1075 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1076 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1077 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1078 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1079 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1080 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1081 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1082 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1083 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1084 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1085 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1086 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1087 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1088 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1089 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1090 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1091 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1092 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1093 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1094 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1095 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "://" ))[3] - __s2[3]); | 0 |
1096 | "://"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "://" ))[3] - __s2[3]); | 0 |
1097 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1098 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1099 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1100 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1101 | )))); }) : strncmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1102 | uri + lenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1103 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1104 | "://"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1105 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1106 | 3TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1107 | ))) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1108 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1109 | return never executed: return 1; 1;never executed: return 1; | 0 |
1110 | uri += len + 3; | - |
1111 | | - |
1112 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1113 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1114 | ) | - |
1115 | * never executed: *userp = ((void *)0) ; userp = never executed: *userp = ((void *)0) ; | 0 |
1116 | ((void *)0) never executed: *userp = ((void *)0) ; | 0 |
1117 | ; never executed: *userp = ((void *)0) ; | 0 |
1118 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1119 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1120 | ) | - |
1121 | * never executed: *hostp = ((void *)0) ; hostp = never executed: *hostp = ((void *)0) ; | 0 |
1122 | ((void *)0) never executed: *hostp = ((void *)0) ; | 0 |
1123 | ; never executed: *hostp = ((void *)0) ; | 0 |
1124 | if (portp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1125 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1126 | ) | - |
1127 | * never executed: *portp = -1; portp = -1;never executed: *portp = -1; | 0 |
1128 | if (pathp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1129 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1130 | ) | - |
1131 | * never executed: *pathp = ((void *)0) ; pathp = never executed: *pathp = ((void *)0) ; | 0 |
1132 | ((void *)0) never executed: *pathp = ((void *)0) ; | 0 |
1133 | ; never executed: *pathp = ((void *)0) ; | 0 |
1134 | | - |
1135 | uridup = tmp = xstrdup(uri); | - |
1136 | | - |
1137 | | - |
1138 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1139 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1140 | '@'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1141 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1142 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1143 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1144 | '@'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1145 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1146 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1147 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1148 | '@'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1149 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1150 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1151 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1152 | '@'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1153 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1154 | ) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1155 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1156 | ) { | - |
1157 | char *delim; | - |
1158 | | - |
1159 | *cp = '\0'; | - |
1160 | | - |
1161 | if ((TRUE | never evaluated | FALSE | never evaluated |
delim = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1162 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1163 | ';'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1164 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1165 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1166 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1167 | ';'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1168 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1169 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1170 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1171 | ';'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1172 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1173 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1174 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1175 | ';'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1176 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1177 | ) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1178 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1179 | ) { | - |
1180 | | - |
1181 | *delim = '\0'; | - |
1182 | } never executed: end of block | 0 |
1183 | if (*TRUE | never evaluated | FALSE | never evaluated |
tmp == '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1184 | | - |
1185 | goto never executed: goto out; out;never executed: goto out; | 0 |
1186 | } | - |
1187 | if ((TRUE | never evaluated | FALSE | never evaluated |
user = urldecode(tmp)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1188 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1189 | ) | - |
1190 | goto never executed: goto out; out;never executed: goto out; | 0 |
1191 | tmp = cp + 1; | - |
1192 | } never executed: end of block | 0 |
1193 | | - |
1194 | | - |
1195 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = hpdelim2(&tmp, &ch)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1196 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1197 | || *TRUE | never evaluated | FALSE | never evaluated |
cp == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1198 | goto never executed: goto out; out;never executed: goto out; | 0 |
1199 | host = xstrdup(cleanhostname(cp)); | - |
1200 | if (!valid_domain(host, 0, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1201 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1202 | )TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1203 | goto never executed: goto out; out;never executed: goto out; | 0 |
1204 | | - |
1205 | if (tmp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1206 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1207 | && *TRUE | never evaluated | FALSE | never evaluated |
tmp != '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1208 | if (ch == ':'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1209 | | - |
1210 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1211 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1212 | '/'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1213 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1214 | tmpTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1215 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1216 | '/'TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1217 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1218 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1219 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1220 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1221 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1222 | tmpTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1223 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1224 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1225 | )))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1226 | ) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1227 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1228 | ) | - |
1229 | * never executed: *cp = '\0'; cp = '\0';never executed: *cp = '\0'; | 0 |
1230 | if ((TRUE | never evaluated | FALSE | never evaluated |
port = a2port(tmp)) <= 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1231 | goto never executed: goto out; out;never executed: goto out; | 0 |
1232 | tmp = cpTRUE | never evaluated | FALSE | never evaluated |
? cp + 1 : | 0 |
1233 | ((void *)0) | - |
1234 | ; | - |
1235 | } never executed: end of block | 0 |
1236 | if (tmp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1237 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1238 | && *TRUE | never evaluated | FALSE | never evaluated |
tmp != '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1239 | | - |
1240 | if ((TRUE | never evaluated | FALSE | never evaluated |
path = urldecode(tmp)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1241 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1242 | ) | - |
1243 | goto never executed: goto out; out;never executed: goto out; | 0 |
1244 | } never executed: end of block | 0 |
1245 | } never executed: end of block | 0 |
1246 | | - |
1247 | | - |
1248 | if (userp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1249 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1250 | ) { | - |
1251 | *userp = user; | - |
1252 | user = | - |
1253 | ((void *)0) | - |
1254 | ; | - |
1255 | } never executed: end of block | 0 |
1256 | if (hostp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1257 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1258 | ) { | - |
1259 | *hostp = host; | - |
1260 | host = | - |
1261 | ((void *)0) | - |
1262 | ; | - |
1263 | } never executed: end of block | 0 |
1264 | if (portp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1265 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1266 | ) | - |
1267 | * never executed: *portp = port; portp = port;never executed: *portp = port; | 0 |
1268 | if (pathp != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1269 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1270 | ) { | - |
1271 | *pathp = path; | - |
1272 | path = | - |
1273 | ((void *)0) | - |
1274 | ; | - |
1275 | } never executed: end of block | 0 |
1276 | ret = 0; | - |
1277 | out: code before this statement never executed: out: | 0 |
1278 | free(uridup); | - |
1279 | free(user); | - |
1280 | free(host); | - |
1281 | free(path); | - |
1282 | return never executed: return ret; ret;never executed: return ret; | 0 |
1283 | } | - |
1284 | | - |
1285 | | - |
1286 | void | - |
1287 | addargs(arglist *args, char *fmt, ...) | - |
1288 | { | - |
1289 | va_list ap; | - |
1290 | char *cp; | - |
1291 | u_int nalloc; | - |
1292 | int r; | - |
1293 | | - |
1294 | | - |
1295 | __builtin_va_start( | - |
1296 | ap | - |
1297 | , | - |
1298 | fmt | - |
1299 | ) | - |
1300 | ; | - |
1301 | r = vasprintf(&cp, fmt, ap); | - |
1302 | | - |
1303 | __builtin_va_end( | - |
1304 | ap | - |
1305 | ) | - |
1306 | ; | - |
1307 | if (r == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1308 | fatal("addargs: argument too long"); never executed: fatal("addargs: argument too long"); | 0 |
1309 | | - |
1310 | nalloc = args->nalloc; | - |
1311 | if (args->list == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1312 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1313 | ) { | - |
1314 | nalloc = 32; | - |
1315 | args->num = 0; | - |
1316 | } never executed: end of block else if (args->num+2 >= nallocTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1317 | nalloc *= 2; never executed: nalloc *= 2; | 0 |
1318 | | - |
1319 | args->list = xrecallocarray(args->list, args->nalloc, nalloc, sizeof(char *)); | - |
1320 | args->nalloc = nalloc; | - |
1321 | args->list[args->num++] = cp; | - |
1322 | args->list[args->num] = | - |
1323 | ((void *)0) | - |
1324 | ; | - |
1325 | } never executed: end of block | 0 |
1326 | | - |
1327 | void | - |
1328 | replacearg(arglist *args, u_int which, char *fmt, ...) | - |
1329 | { | - |
1330 | va_list ap; | - |
1331 | char *cp; | - |
1332 | int r; | - |
1333 | | - |
1334 | | - |
1335 | __builtin_va_start( | - |
1336 | ap | - |
1337 | , | - |
1338 | fmt | - |
1339 | ) | - |
1340 | ; | - |
1341 | r = vasprintf(&cp, fmt, ap); | - |
1342 | | - |
1343 | __builtin_va_end( | - |
1344 | ap | - |
1345 | ) | - |
1346 | ; | - |
1347 | if (r == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1348 | fatal("replacearg: argument too long"); never executed: fatal("replacearg: argument too long"); | 0 |
1349 | | - |
1350 | if (which >= args->numTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1351 | fatal("replacearg: tried to replace invalid arg %d >= %d", never executed: fatal("replacearg: tried to replace invalid arg %d >= %d", which, args->num); | 0 |
1352 | which, args->num); never executed: fatal("replacearg: tried to replace invalid arg %d >= %d", which, args->num); | 0 |
1353 | free(args->list[which]); | - |
1354 | args->list[which] = cp; | - |
1355 | } never executed: end of block | 0 |
1356 | | - |
1357 | void | - |
1358 | freeargs(arglist *args) | - |
1359 | { | - |
1360 | u_int i; | - |
1361 | | - |
1362 | if (args->list != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1363 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1364 | ) { | - |
1365 | for (i = 0; i < args->numTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
1366 | free(args->list[i]); never executed: free(args->list[i]); | 0 |
1367 | free(args->list); | - |
1368 | args->nalloc = args->num = 0; | - |
1369 | args->list = | - |
1370 | ((void *)0) | - |
1371 | ; | - |
1372 | } never executed: end of block | 0 |
1373 | } never executed: end of block | 0 |
1374 | | - |
1375 | | - |
1376 | | - |
1377 | | - |
1378 | | - |
1379 | char * | - |
1380 | tilde_expand_filename(const char *filename, uid_t uid) | - |
1381 | { | - |
1382 | const char *path, *sep; | - |
1383 | char user[128], *ret; | - |
1384 | struct passwd *pw; | - |
1385 | u_int len, slash; | - |
1386 | | - |
1387 | if (*TRUE | evaluated 8 times by 1 test | FALSE | never evaluated |
filename != '~'TRUE | evaluated 8 times by 1 test | FALSE | never evaluated |
) | 0-8 |
1388 | returnexecuted 8 times by 1 test: return (xstrdup(filename)); (xstrdup(filename));executed 8 times by 1 test: return (xstrdup(filename)); | 8 |
1389 | filename++; | - |
1390 | | - |
1391 | path = | - |
1392 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1393 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1394 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1395 | filenameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1396 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1397 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1398 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr ( | 0 |
1399 | filename | - |
1400 | , | - |
1401 | '/' | - |
1402 | ) : __builtin_strchr ( | - |
1403 | filename | - |
1404 | , | - |
1405 | '/' | - |
1406 | ))) | - |
1407 | ; | - |
1408 | if (path != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1409 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1410 | && path > filenameTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1411 | slash = path - filename; | - |
1412 | if (slash > sizeof(user) - 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1413 | fatal("tilde_expand_filename: ~username too long"); never executed: fatal("tilde_expand_filename: ~username too long"); | 0 |
1414 | memcpy(user, filename, slash); | - |
1415 | user[slash] = '\0'; | - |
1416 | if ((TRUE | never evaluated | FALSE | never evaluated |
pw = getpwnam(user)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1417 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1418 | ) | - |
1419 | fatal("tilde_expand_filename: No such user %s", user); never executed: fatal("tilde_expand_filename: No such user %s", user); | 0 |
1420 | } never executed: end of block else if ((TRUE | never evaluated | FALSE | never evaluated |
pw = getpwuid(uid)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1421 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1422 | ) | - |
1423 | fatal("tilde_expand_filename: No such uid %ld", (long)uid); never executed: fatal("tilde_expand_filename: No such uid %ld", (long)uid); | 0 |
1424 | | - |
1425 | | - |
1426 | len = strlen(pw->pw_dir); | - |
1427 | if (len == 0TRUE | never evaluated | FALSE | never evaluated |
|| pw->pw_dir[len - 1] != '/'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1428 | sep = "/"; never executed: sep = "/"; | 0 |
1429 | else | - |
1430 | sep = ""; never executed: sep = ""; | 0 |
1431 | | - |
1432 | | - |
1433 | if (path != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1434 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1435 | ) | - |
1436 | filename = path + 1; never executed: filename = path + 1; | 0 |
1437 | | - |
1438 | if (xasprintf(&ret, "%s%s%s", pw->pw_dir, sep, filename) >= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1439 | 4096TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1440 | ) | - |
1441 | fatal("tilde_expand_filename: Path too long"); never executed: fatal("tilde_expand_filename: Path too long"); | 0 |
1442 | | - |
1443 | return never executed: return (ret); (ret);never executed: return (ret); | 0 |
1444 | } | - |
1445 | | - |
1446 | | - |
1447 | | - |
1448 | | - |
1449 | | - |
1450 | | - |
1451 | | - |
1452 | char * | - |
1453 | percent_expand(const char *string, ...) | - |
1454 | { | - |
1455 | | - |
1456 | u_int num_keys, i, j; | - |
1457 | struct { | - |
1458 | const char *key; | - |
1459 | const char *repl; | - |
1460 | } keys[16]; | - |
1461 | char buf[4096]; | - |
1462 | va_list ap; | - |
1463 | | - |
1464 | | - |
1465 | | - |
1466 | __builtin_va_start( | - |
1467 | ap | - |
1468 | , | - |
1469 | string | - |
1470 | ) | - |
1471 | ; | - |
1472 | for (num_keys = 0; num_keys < 16TRUE | never evaluated | FALSE | never evaluated |
; num_keys++) { | 0 |
1473 | keys[num_keys].key = | - |
1474 | __builtin_va_arg( | - |
1475 | ap | - |
1476 | , | - |
1477 | char * | - |
1478 | ) | - |
1479 | ; | - |
1480 | if (keys[num_keys].key == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1481 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1482 | ) | - |
1483 | break; never executed: break; | 0 |
1484 | keys[num_keys].repl = | - |
1485 | __builtin_va_arg( | - |
1486 | ap | - |
1487 | , | - |
1488 | char * | - |
1489 | ) | - |
1490 | ; | - |
1491 | if (keys[num_keys].repl == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1492 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1493 | ) | - |
1494 | fatal("%s: NULL replacement", __func__); never executed: fatal("%s: NULL replacement", __func__); | 0 |
1495 | } never executed: end of block | 0 |
1496 | if (num_keys == 16TRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
1497 | __builtin_va_arg(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1498 | apTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1499 | ,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1500 | char *TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1501 | ) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1502 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1503 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1504 | ) | - |
1505 | fatal("%s: too many keys", __func__); never executed: fatal("%s: too many keys", __func__); | 0 |
1506 | | - |
1507 | __builtin_va_end( | - |
1508 | ap | - |
1509 | ) | - |
1510 | ; | - |
1511 | | - |
1512 | | - |
1513 | *buf = '\0'; | - |
1514 | for (i = 0; *TRUE | never evaluated | FALSE | never evaluated |
string != '\0'TRUE | never evaluated | FALSE | never evaluated |
; string++) { | 0 |
1515 | if (*TRUE | never evaluated | FALSE | never evaluated |
string != '%'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1516 | append: | - |
1517 | buf[i++] = *string; | - |
1518 | if (i >= sizeof(buf)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1519 | fatal("%s: string too long", __func__); never executed: fatal("%s: string too long", __func__); | 0 |
1520 | buf[i] = '\0'; | - |
1521 | continue; never executed: continue; | 0 |
1522 | } | - |
1523 | string++; | - |
1524 | | - |
1525 | if (*TRUE | never evaluated | FALSE | never evaluated |
string == '%'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1526 | goto never executed: goto append; append;never executed: goto append; | 0 |
1527 | if (*TRUE | never evaluated | FALSE | never evaluated |
string == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1528 | fatal("%s: invalid format", __func__); never executed: fatal("%s: invalid format", __func__); | 0 |
1529 | for (j = 0; j < num_keysTRUE | never evaluated | FALSE | never evaluated |
; j++) { | 0 |
1530 | if ( | - |
1531 | (TRUE | never evaluated | FALSE | never evaluated |
__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1532 | *stringTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1533 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1534 | keys[j].keyTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1535 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1536 | *stringTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1537 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1538 | keys[j].keyTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1539 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1540 | *stringTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1541 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1542 | keys[j].keyTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1543 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1544 | *stringTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1545 | ))) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1546 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1547 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1548 | ) { | - |
1549 | i = strlcat(buf, keys[j].repl, sizeof(buf)); | - |
1550 | if (i >= sizeof(buf)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1551 | fatal("%s: string too long", __func__); never executed: fatal("%s: string too long", __func__); | 0 |
1552 | break; never executed: break; | 0 |
1553 | } | - |
1554 | } never executed: end of block | 0 |
1555 | if (j >= num_keysTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1556 | fatal("%s: unknown key %%%c", __func__, *string); never executed: fatal("%s: unknown key %%%c", __func__, *string); | 0 |
1557 | } never executed: end of block | 0 |
1558 | return never executed: return (xstrdup(buf)); (xstrdup(buf));never executed: return (xstrdup(buf)); | 0 |
1559 | | - |
1560 | } | - |
1561 | | - |
1562 | int | - |
1563 | tun_open(int tun, int mode, char **ifname) | - |
1564 | { | - |
1565 | | - |
1566 | return never executed: return (sys_tun_open(tun, mode, ifname)); (sys_tun_open(tun, mode, ifname));never executed: return (sys_tun_open(tun, mode, ifname)); | 0 |
1567 | } | - |
1568 | | - |
1569 | void | - |
1570 | sanitise_stdfd(void) | - |
1571 | { | - |
1572 | int nullfd, dupfd; | - |
1573 | | - |
1574 | if ((TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
nullfd = dupfd = open(TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1575 | "/dev/null"TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1576 | , TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1577 | 02TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1578 | )) == -1TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
) { | 0-30 |
1579 | fprintf( | - |
1580 | stderr | - |
1581 | , "Couldn't open /dev/null: %s\n", | - |
1582 | strerror( | - |
1583 | (*__errno_location ()) | - |
1584 | )); | - |
1585 | exit(1); never executed: exit(1); | 0 |
1586 | } | - |
1587 | while (++TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
dupfd <= TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1588 | 2TRUE | never evaluated | FALSE | evaluated 30 times by 2 tests |
| 0-30 |
1589 | ) { | - |
1590 | | - |
1591 | if (fcntl(dupfd, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1592 | 3TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1593 | ) == -1TRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
1594 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1595 | == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1596 | 9TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1597 | ) { | - |
1598 | if (dup2(nullfd, dupfd) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1599 | fprintf( | - |
1600 | stderr | - |
1601 | , "dup2: %s\n", strerror( | - |
1602 | (*__errno_location ()) | - |
1603 | )); | - |
1604 | exit(1); never executed: exit(1); | 0 |
1605 | } | - |
1606 | } never executed: end of block | 0 |
1607 | } never executed: end of block | 0 |
1608 | if (nullfd > TRUE | evaluated 30 times by 2 tests | FALSE | never evaluated |
| 0-30 |
1609 | 2TRUE | evaluated 30 times by 2 tests | FALSE | never evaluated |
| 0-30 |
1610 | ) | - |
1611 | close(nullfd);executed 30 times by 2 tests: close(nullfd); | 30 |
1612 | }executed 30 times by 2 tests: end of block | 30 |
1613 | | - |
1614 | char * | - |
1615 | tohex(const void *vp, size_t l) | - |
1616 | { | - |
1617 | const u_char *p = (const u_char *)vp; | - |
1618 | char b[3], *r; | - |
1619 | size_t i, hl; | - |
1620 | | - |
1621 | if (l > 65536TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1622 | return never executed: return xstrdup("tohex: length > 65536"); xstrdup("tohex: length > 65536");never executed: return xstrdup("tohex: length > 65536"); | 0 |
1623 | | - |
1624 | hl = l * 2 + 1; | - |
1625 | r = xcalloc(1, hl); | - |
1626 | for (i = 0; i < lTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
1627 | snprintf(b, sizeof(b), "%02x", p[i]); | - |
1628 | strlcat(r, b, hl); | - |
1629 | } never executed: end of block | 0 |
1630 | return never executed: return (r); (r);never executed: return (r); | 0 |
1631 | } | - |
1632 | | - |
1633 | u_int64_t | - |
1634 | get_u64(const void *vp) | - |
1635 | { | - |
1636 | const u_char *p = (const u_char *)vp; | - |
1637 | u_int64_t v; | - |
1638 | | - |
1639 | v = (u_int64_t)p[0] << 56; | - |
1640 | v |= (u_int64_t)p[1] << 48; | - |
1641 | v |= (u_int64_t)p[2] << 40; | - |
1642 | v |= (u_int64_t)p[3] << 32; | - |
1643 | v |= (u_int64_t)p[4] << 24; | - |
1644 | v |= (u_int64_t)p[5] << 16; | - |
1645 | v |= (u_int64_t)p[6] << 8; | - |
1646 | v |= (u_int64_t)p[7]; | - |
1647 | | - |
1648 | return never executed: return (v); (v);never executed: return (v); | 0 |
1649 | } | - |
1650 | | - |
1651 | u_int32_t | - |
1652 | get_u32(const void *vp) | - |
1653 | { | - |
1654 | const u_char *p = (const u_char *)vp; | - |
1655 | u_int32_t v; | - |
1656 | | - |
1657 | v = (u_int32_t)p[0] << 24; | - |
1658 | v |= (u_int32_t)p[1] << 16; | - |
1659 | v |= (u_int32_t)p[2] << 8; | - |
1660 | v |= (u_int32_t)p[3]; | - |
1661 | | - |
1662 | return never executed: return (v); (v);never executed: return (v); | 0 |
1663 | } | - |
1664 | | - |
1665 | u_int32_t | - |
1666 | get_u32_le(const void *vp) | - |
1667 | { | - |
1668 | const u_char *p = (const u_char *)vp; | - |
1669 | u_int32_t v; | - |
1670 | | - |
1671 | v = (u_int32_t)p[0]; | - |
1672 | v |= (u_int32_t)p[1] << 8; | - |
1673 | v |= (u_int32_t)p[2] << 16; | - |
1674 | v |= (u_int32_t)p[3] << 24; | - |
1675 | | - |
1676 | return never executed: return (v); (v);never executed: return (v); | 0 |
1677 | } | - |
1678 | | - |
1679 | u_int16_t | - |
1680 | get_u16(const void *vp) | - |
1681 | { | - |
1682 | const u_char *p = (const u_char *)vp; | - |
1683 | u_int16_t v; | - |
1684 | | - |
1685 | v = (u_int16_t)p[0] << 8; | - |
1686 | v |= (u_int16_t)p[1]; | - |
1687 | | - |
1688 | return never executed: return (v); (v);never executed: return (v); | 0 |
1689 | } | - |
1690 | | - |
1691 | void | - |
1692 | put_u64(void *vp, u_int64_t v) | - |
1693 | { | - |
1694 | u_char *p = (u_char *)vp; | - |
1695 | | - |
1696 | p[0] = (u_char)(v >> 56) & 0xff; | - |
1697 | p[1] = (u_char)(v >> 48) & 0xff; | - |
1698 | p[2] = (u_char)(v >> 40) & 0xff; | - |
1699 | p[3] = (u_char)(v >> 32) & 0xff; | - |
1700 | p[4] = (u_char)(v >> 24) & 0xff; | - |
1701 | p[5] = (u_char)(v >> 16) & 0xff; | - |
1702 | p[6] = (u_char)(v >> 8) & 0xff; | - |
1703 | p[7] = (u_char)v & 0xff; | - |
1704 | } never executed: end of block | 0 |
1705 | | - |
1706 | void | - |
1707 | put_u32(void *vp, u_int32_t v) | - |
1708 | { | - |
1709 | u_char *p = (u_char *)vp; | - |
1710 | | - |
1711 | p[0] = (u_char)(v >> 24) & 0xff; | - |
1712 | p[1] = (u_char)(v >> 16) & 0xff; | - |
1713 | p[2] = (u_char)(v >> 8) & 0xff; | - |
1714 | p[3] = (u_char)v & 0xff; | - |
1715 | } never executed: end of block | 0 |
1716 | | - |
1717 | void | - |
1718 | put_u32_le(void *vp, u_int32_t v) | - |
1719 | { | - |
1720 | u_char *p = (u_char *)vp; | - |
1721 | | - |
1722 | p[0] = (u_char)v & 0xff; | - |
1723 | p[1] = (u_char)(v >> 8) & 0xff; | - |
1724 | p[2] = (u_char)(v >> 16) & 0xff; | - |
1725 | p[3] = (u_char)(v >> 24) & 0xff; | - |
1726 | } never executed: end of block | 0 |
1727 | | - |
1728 | void | - |
1729 | put_u16(void *vp, u_int16_t v) | - |
1730 | { | - |
1731 | u_char *p = (u_char *)vp; | - |
1732 | | - |
1733 | p[0] = (u_char)(v >> 8) & 0xff; | - |
1734 | p[1] = (u_char)v & 0xff; | - |
1735 | } never executed: end of block | 0 |
1736 | | - |
1737 | void | - |
1738 | ms_subtract_diff(struct timeval *start, int *ms) | - |
1739 | { | - |
1740 | struct timeval diff, finish; | - |
1741 | | - |
1742 | monotime_tv(&finish); | - |
1743 | | - |
1744 | do { ( | - |
1745 | &diff | - |
1746 | )->tv_sec = ( | - |
1747 | &finish | - |
1748 | )->tv_sec - ( | - |
1749 | start | - |
1750 | )->tv_sec; ( | - |
1751 | &diff | - |
1752 | )->tv_usec = ( | - |
1753 | &finish | - |
1754 | )->tv_usec - ( | - |
1755 | start | - |
1756 | )->tv_usec; if ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1757 | &diffTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1758 | )->TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
tv_usec < 0TRUE | never evaluated | FALSE | never evaluated |
) { --( | 0 |
1759 | &diff | - |
1760 | )->tv_sec; ( | - |
1761 | &diff | - |
1762 | )->tv_usec += 1000000; } never executed: end of block } while (0) | 0 |
1763 | ; | - |
1764 | *ms -= (diff.tv_sec * 1000) + (diff.tv_usec / 1000); | - |
1765 | } never executed: end of block | 0 |
1766 | | - |
1767 | void | - |
1768 | ms_to_timeval(struct timeval *tv, int ms) | - |
1769 | { | - |
1770 | if (ms < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1771 | ms = 0; never executed: ms = 0; | 0 |
1772 | tv->tv_sec = ms / 1000; | - |
1773 | tv->tv_usec = (ms % 1000) * 1000; | - |
1774 | } never executed: end of block | 0 |
1775 | | - |
1776 | void | - |
1777 | monotime_ts(struct timespec *ts) | - |
1778 | { | - |
1779 | struct timeval tv; | - |
1780 | | - |
1781 | | - |
1782 | static int gettime_failed = 0; | - |
1783 | | - |
1784 | if (!gettime_failedTRUE | evaluated 352 times by 1 test | FALSE | never evaluated |
) { | 0-352 |
1785 | | - |
1786 | if (clock_gettime(TRUE | evaluated 352 times by 1 test | FALSE | never evaluated |
| 0-352 |
1787 | 7TRUE | evaluated 352 times by 1 test | FALSE | never evaluated |
| 0-352 |
1788 | , ts) == 0TRUE | evaluated 352 times by 1 test | FALSE | never evaluated |
) | 0-352 |
1789 | return;executed 352 times by 1 test: return; | 352 |
1790 | | - |
1791 | | - |
1792 | if (clock_gettime(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1793 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1794 | , ts) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1795 | return; never executed: return; | 0 |
1796 | | - |
1797 | | - |
1798 | | - |
1799 | if (clock_gettime(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1800 | 0TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1801 | , ts) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1802 | return; never executed: return; | 0 |
1803 | | - |
1804 | debug3("clock_gettime: %s", strerror( | - |
1805 | (*__errno_location ()) | - |
1806 | )); | - |
1807 | gettime_failed = 1; | - |
1808 | } never executed: end of block | 0 |
1809 | | - |
1810 | gettimeofday(&tv, | - |
1811 | ((void *)0) | - |
1812 | ); | - |
1813 | ts->tv_sec = tv.tv_sec; | - |
1814 | ts->tv_nsec = (long)tv.tv_usec * 1000; | - |
1815 | } never executed: end of block | 0 |
1816 | | - |
1817 | void | - |
1818 | monotime_tv(struct timeval *tv) | - |
1819 | { | - |
1820 | struct timespec ts; | - |
1821 | | - |
1822 | monotime_ts(&ts); | - |
1823 | tv->tv_sec = ts.tv_sec; | - |
1824 | tv->tv_usec = ts.tv_nsec / 1000; | - |
1825 | } never executed: end of block | 0 |
1826 | | - |
1827 | time_t | - |
1828 | monotime(void) | - |
1829 | { | - |
1830 | struct timespec ts; | - |
1831 | | - |
1832 | monotime_ts(&ts); | - |
1833 | returnexecuted 352 times by 1 test: return ts.tv_sec; ts.tv_sec;executed 352 times by 1 test: return ts.tv_sec; | 352 |
1834 | } | - |
1835 | | - |
1836 | double | - |
1837 | monotime_double(void) | - |
1838 | { | - |
1839 | struct timespec ts; | - |
1840 | | - |
1841 | monotime_ts(&ts); | - |
1842 | return never executed: return ts.tv_sec + ((double)ts.tv_nsec / 1000000000); ts.tv_sec + ((double)ts.tv_nsec / 1000000000);never executed: return ts.tv_sec + ((double)ts.tv_nsec / 1000000000); | 0 |
1843 | } | - |
1844 | | - |
1845 | void | - |
1846 | bandwidth_limit_init(struct bwlimit *bw, u_int64_t kbps, size_t buflen) | - |
1847 | { | - |
1848 | bw->buflen = buflen; | - |
1849 | bw->rate = kbps; | - |
1850 | bw->thresh = bw->rate; | - |
1851 | bw->lamt = 0; | - |
1852 | | - |
1853 | (( | - |
1854 | &bw->bwstart | - |
1855 | )->tv_sec = ( | - |
1856 | &bw->bwstart | - |
1857 | )->tv_usec = 0) | - |
1858 | ; | - |
1859 | | - |
1860 | (( | - |
1861 | &bw->bwend | - |
1862 | )->tv_sec = ( | - |
1863 | &bw->bwend | - |
1864 | )->tv_usec = 0) | - |
1865 | ; | - |
1866 | } never executed: end of block | 0 |
1867 | | - |
1868 | | - |
1869 | void | - |
1870 | bandwidth_limit(struct bwlimit *bw, size_t read_len) | - |
1871 | { | - |
1872 | u_int64_t waitlen; | - |
1873 | struct timespec ts, rm; | - |
1874 | | - |
1875 | if (! | - |
1876 | ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1877 | &bw->bwstartTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1878 | )->tv_secTRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1879 | &bw->bwstartTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1880 | )->tv_usecTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1881 | ) { | - |
1882 | monotime_tv(&bw->bwstart); | - |
1883 | return; never executed: return; | 0 |
1884 | } | - |
1885 | | - |
1886 | bw->lamt += read_len; | - |
1887 | if (bw->lamt < bw->threshTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1888 | return; never executed: return; | 0 |
1889 | | - |
1890 | monotime_tv(&bw->bwend); | - |
1891 | | - |
1892 | do { ( | - |
1893 | &bw->bwend | - |
1894 | )->tv_sec = ( | - |
1895 | &bw->bwend | - |
1896 | )->tv_sec - ( | - |
1897 | &bw->bwstart | - |
1898 | )->tv_sec; ( | - |
1899 | &bw->bwend | - |
1900 | )->tv_usec = ( | - |
1901 | &bw->bwend | - |
1902 | )->tv_usec - ( | - |
1903 | &bw->bwstart | - |
1904 | )->tv_usec; if ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1905 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1906 | )->TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
tv_usec < 0TRUE | never evaluated | FALSE | never evaluated |
) { --( | 0 |
1907 | &bw->bwend | - |
1908 | )->tv_sec; ( | - |
1909 | &bw->bwend | - |
1910 | )->tv_usec += 1000000; } never executed: end of block } while (0) | 0 |
1911 | ; | - |
1912 | if (! | - |
1913 | ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1914 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1915 | )->tv_secTRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1916 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1917 | )->tv_usecTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1918 | ) | - |
1919 | return; never executed: return; | 0 |
1920 | | - |
1921 | bw->lamt *= 8; | - |
1922 | waitlen = (double)1000000L * bw->lamt / bw->rate; | - |
1923 | | - |
1924 | bw->bwstart.tv_sec = waitlen / 1000000L; | - |
1925 | bw->bwstart.tv_usec = waitlen % 1000000L; | - |
1926 | | - |
1927 | if ( | - |
1928 | (((TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1929 | &bw->bwstartTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1930 | )->tv_sec == (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1931 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1932 | )->tv_sec)TRUE | never evaluated | FALSE | never evaluated |
? ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1933 | &bw->bwstartTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1934 | )->tv_usec TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1935 | > TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1936 | (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1937 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1938 | )->tv_usec) : ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1939 | &bw->bwstartTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1940 | )->tv_sec TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1941 | > TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1942 | (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1943 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1944 | )->tv_sec))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1945 | ) { | - |
1946 | | - |
1947 | do { ( | - |
1948 | &bw->bwend | - |
1949 | )->tv_sec = ( | - |
1950 | &bw->bwstart | - |
1951 | )->tv_sec - ( | - |
1952 | &bw->bwend | - |
1953 | )->tv_sec; ( | - |
1954 | &bw->bwend | - |
1955 | )->tv_usec = ( | - |
1956 | &bw->bwstart | - |
1957 | )->tv_usec - ( | - |
1958 | &bw->bwend | - |
1959 | )->tv_usec; if ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1960 | &bw->bwendTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1961 | )->tv_usec < 0TRUE | never evaluated | FALSE | never evaluated |
) { --( | 0 |
1962 | &bw->bwend | - |
1963 | )->tv_sec; ( | - |
1964 | &bw->bwend | - |
1965 | )->tv_usec += 1000000; } never executed: end of block } while (0) | 0 |
1966 | ; | - |
1967 | | - |
1968 | | - |
1969 | if (bw->bwend.tv_secTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1970 | bw->thresh /= 2; | - |
1971 | if (bw->thresh < bw->buflen / 4TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1972 | bw->thresh = bw->buflen / 4; never executed: bw->thresh = bw->buflen / 4; | 0 |
1973 | } never executed: end of block else if (bw->bwend.tv_usec < 10000TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1974 | bw->thresh *= 2; | - |
1975 | if (bw->thresh > bw->buflen * 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1976 | bw->thresh = bw->buflen * 8; never executed: bw->thresh = bw->buflen * 8; | 0 |
1977 | } never executed: end of block | 0 |
1978 | | - |
1979 | | - |
1980 | { ( | - |
1981 | &ts | - |
1982 | )->tv_sec = ( | - |
1983 | &bw->bwend | - |
1984 | )->tv_sec; ( | - |
1985 | &ts | - |
1986 | )->tv_nsec = ( | - |
1987 | &bw->bwend | - |
1988 | )->tv_usec * 1000; } | - |
1989 | ; | - |
1990 | while (nanosleep(&ts, &rm) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1991 | if ( | - |
1992 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1993 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1994 | 4TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1995 | ) | - |
1996 | break; never executed: break; | 0 |
1997 | ts = rm; | - |
1998 | } never executed: end of block | 0 |
1999 | } never executed: end of block | 0 |
2000 | | - |
2001 | bw->lamt = 0; | - |
2002 | monotime_tv(&bw->bwstart); | - |
2003 | } never executed: end of block | 0 |
2004 | | - |
2005 | | - |
2006 | void | - |
2007 | mktemp_proto(char *s, size_t len) | - |
2008 | { | - |
2009 | const char *tmpdir; | - |
2010 | int r; | - |
2011 | | - |
2012 | if ((TRUE | never evaluated | FALSE | never evaluated |
tmpdir = getenv("TMPDIR")) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2013 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2014 | ) { | - |
2015 | r = snprintf(s, len, "%s/ssh-XXXXXXXXXXXX", tmpdir); | - |
2016 | if (r > 0TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
size_t)r < lenTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2017 | return; never executed: return; | 0 |
2018 | } never executed: end of block | 0 |
2019 | r = snprintf(s, len, "/tmp/ssh-XXXXXXXXXXXX"); | - |
2020 | if (r < 0TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
size_t)r >= lenTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2021 | fatal("%s: template string too short", __func__); never executed: fatal("%s: template string too short", __func__); | 0 |
2022 | } never executed: end of block | 0 |
2023 | | - |
2024 | static const struct { | - |
2025 | const char *name; | - |
2026 | int value; | - |
2027 | } ipqos[] = { | - |
2028 | { "none", 0x7fffffff }, | - |
2029 | { "af11", | - |
2030 | 0x28 | - |
2031 | }, | - |
2032 | { "af12", | - |
2033 | 0x30 | - |
2034 | }, | - |
2035 | { "af13", | - |
2036 | 0x38 | - |
2037 | }, | - |
2038 | { "af21", | - |
2039 | 0x48 | - |
2040 | }, | - |
2041 | { "af22", | - |
2042 | 0x50 | - |
2043 | }, | - |
2044 | { "af23", | - |
2045 | 0x58 | - |
2046 | }, | - |
2047 | { "af31", | - |
2048 | 0x68 | - |
2049 | }, | - |
2050 | { "af32", | - |
2051 | 0x70 | - |
2052 | }, | - |
2053 | { "af33", | - |
2054 | 0x78 | - |
2055 | }, | - |
2056 | { "af41", | - |
2057 | 0x88 | - |
2058 | }, | - |
2059 | { "af42", | - |
2060 | 0x90 | - |
2061 | }, | - |
2062 | { "af43", | - |
2063 | 0x98 | - |
2064 | }, | - |
2065 | { "cs0", 0x00 }, | - |
2066 | { "cs1", 0x20 }, | - |
2067 | { "cs2", 0x40 }, | - |
2068 | { "cs3", 0x60 }, | - |
2069 | { "cs4", 0x80 }, | - |
2070 | { "cs5", 0xa0 }, | - |
2071 | { "cs6", 0xc0 }, | - |
2072 | { "cs7", 0xe0 }, | - |
2073 | { "ef", | - |
2074 | 0xb8 | - |
2075 | }, | - |
2076 | { "lowdelay", | - |
2077 | 0x10 | - |
2078 | }, | - |
2079 | { "throughput", | - |
2080 | 0x08 | - |
2081 | }, | - |
2082 | { "reliability", | - |
2083 | 0x04 | - |
2084 | }, | - |
2085 | { | - |
2086 | ((void *)0) | - |
2087 | , -1 } | - |
2088 | }; | - |
2089 | | - |
2090 | int | - |
2091 | parse_ipqos(const char *cp) | - |
2092 | { | - |
2093 | u_int i; | - |
2094 | char *ep; | - |
2095 | long val; | - |
2096 | | - |
2097 | if (cp == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2098 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2099 | ) | - |
2100 | return never executed: return -1; -1;never executed: return -1; | 0 |
2101 | for (i = 0; ipqos[i].name != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2102 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2103 | ; i++) { | - |
2104 | if (strcasecmp(cp, ipqos[i].name) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2105 | return never executed: return ipqos[i].value; ipqos[i].value;never executed: return ipqos[i].value; | 0 |
2106 | } never executed: end of block | 0 |
2107 | | - |
2108 | val = strtol(cp, &ep, 0); | - |
2109 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '\0'TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
ep != '\0'TRUE | never evaluated | FALSE | never evaluated |
|| val < 0TRUE | never evaluated | FALSE | never evaluated |
|| val > 255TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2110 | return never executed: return -1; -1;never executed: return -1; | 0 |
2111 | return never executed: return val; val;never executed: return val; | 0 |
2112 | } | - |
2113 | | - |
2114 | const char * | - |
2115 | iptos2str(int iptos) | - |
2116 | { | - |
2117 | int i; | - |
2118 | static char iptos_str[sizeof "0xff"]; | - |
2119 | | - |
2120 | for (i = 0; ipqos[i].name != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2121 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2122 | ; i++) { | - |
2123 | if (ipqos[i].value == iptosTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2124 | return never executed: return ipqos[i].name; ipqos[i].name;never executed: return ipqos[i].name; | 0 |
2125 | } never executed: end of block | 0 |
2126 | snprintf(iptos_str, sizeof iptos_str, "0x%02x", iptos); | - |
2127 | return never executed: return iptos_str; iptos_str;never executed: return iptos_str; | 0 |
2128 | } | - |
2129 | | - |
2130 | void | - |
2131 | lowercase(char *s) | - |
2132 | { | - |
2133 | for (; *TRUE | evaluated 8400 times by 1 test | FALSE | evaluated 520 times by 1 test |
sTRUE | evaluated 8400 times by 1 test | FALSE | evaluated 520 times by 1 test |
; s++) | 520-8400 |
2134 | *executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; s = executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 8400 |
2135 | (__extension__ ({ int __res; if (sizeof (TRUE | never evaluated | FALSE | evaluated 8400 times by 1 test |
executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2136 | (u_char)*sTRUE | never evaluated | FALSE | evaluated 8400 times by 1 test |
executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2137 | ) > 1TRUE | never evaluated | FALSE | evaluated 8400 times by 1 test |
) { if (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2138 | (u_char)*sTRUE | never evaluated | FALSE | never evaluated |
executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2139 | )TRUE | never evaluated | FALSE | never evaluated |
) { int __c = (executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2140 | (u_char)*sexecuted 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 8400 |
2141 | ); __res = __c < -128TRUE | never evaluated | FALSE | never evaluated |
|| __c > 255TRUE | never evaluated | FALSE | never evaluated |
? __c : (*__ctype_tolower_loc ())[__c]; }never executed: end of block else __res = tolower (never executed: __res = tolower ( (u_char)*s ); executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2142 | (u_char)*s never executed: __res = tolower ( (u_char)*s ); executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2143 | ); never executed: __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) (executed 8400 times by 1 test: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 0-8400 |
2144 | (u_char)*sexecuted 8400 times by 1 test: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 8400 |
2145 | )];executed 8400 times by 1 test: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; }))executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 8400 |
2146 | ;executed 8400 times by 1 test: *s = (__extension__ ({ int __res; if (sizeof ( (u_char)*s ) > 1) { if (__builtin_constant_p ( (u_char)*s )) { int __c = ( (u_char)*s ); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (u_char)*s ); } else __res = (*__ctype_tolower_loc ())[(int) ( (u_char)*s )]; __res; })) ; | 8400 |
2147 | }executed 520 times by 1 test: end of block | 520 |
2148 | | - |
2149 | int | - |
2150 | unix_listener(const char *path, int backlog, int unlink_first) | - |
2151 | { | - |
2152 | struct sockaddr_un sunaddr; | - |
2153 | int saved_errno, sock; | - |
2154 | | - |
2155 | memset(&sunaddr, 0, sizeof(sunaddr)); | - |
2156 | sunaddr.sun_family = | - |
2157 | 1 | - |
2158 | ; | - |
2159 | if (strlcpy(sunaddr.sun_path, path,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2160 | sizeof(sunaddr.sun_path)) >= sizeof(sunaddr.sun_path)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2161 | error("%s: path \"%s\" too long for Unix domain socket", | - |
2162 | __func__, path); | - |
2163 | | - |
2164 | (*__errno_location ()) | - |
2165 | = | - |
2166 | 36 | - |
2167 | ; | - |
2168 | return never executed: return -1; -1;never executed: return -1; | 0 |
2169 | } | - |
2170 | | - |
2171 | sock = socket( | - |
2172 | 1 | - |
2173 | , | - |
2174 | SOCK_STREAM | - |
2175 | , 0); | - |
2176 | if (sock < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2177 | saved_errno = | - |
2178 | (*__errno_location ()) | - |
2179 | ; | - |
2180 | error("%s: socket: %.100s", __func__, strerror( | - |
2181 | (*__errno_location ()) | - |
2182 | )); | - |
2183 | | - |
2184 | (*__errno_location ()) | - |
2185 | = saved_errno; | - |
2186 | return never executed: return -1; -1;never executed: return -1; | 0 |
2187 | } | - |
2188 | if (unlink_first == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2189 | if (unlink(path) != 0TRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
2190 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2191 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2192 | 2TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2193 | ) | - |
2194 | error("unlink(%s): %.100s", path, strerror( never executed: error("unlink(%s): %.100s", path, strerror( (*__errno_location ()) )); | 0 |
2195 | (*__errno_location ()) never executed: error("unlink(%s): %.100s", path, strerror( (*__errno_location ()) )); | 0 |
2196 | )); never executed: error("unlink(%s): %.100s", path, strerror( (*__errno_location ()) )); | 0 |
2197 | } never executed: end of block | 0 |
2198 | if (bind(sock, (struct sockaddr *)&sunaddr, sizeof(sunaddr)) < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2199 | saved_errno = | - |
2200 | (*__errno_location ()) | - |
2201 | ; | - |
2202 | error("%s: cannot bind to path %s: %s", | - |
2203 | __func__, path, strerror( | - |
2204 | (*__errno_location ()) | - |
2205 | )); | - |
2206 | close(sock); | - |
2207 | | - |
2208 | (*__errno_location ()) | - |
2209 | = saved_errno; | - |
2210 | return never executed: return -1; -1;never executed: return -1; | 0 |
2211 | } | - |
2212 | if (listen(sock, backlog) < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2213 | saved_errno = | - |
2214 | (*__errno_location ()) | - |
2215 | ; | - |
2216 | error("%s: cannot listen on path %s: %s", | - |
2217 | __func__, path, strerror( | - |
2218 | (*__errno_location ()) | - |
2219 | )); | - |
2220 | close(sock); | - |
2221 | unlink(path); | - |
2222 | | - |
2223 | (*__errno_location ()) | - |
2224 | = saved_errno; | - |
2225 | return never executed: return -1; -1;never executed: return -1; | 0 |
2226 | } | - |
2227 | return never executed: return sock; sock;never executed: return sock; | 0 |
2228 | } | - |
2229 | | - |
2230 | void | - |
2231 | sock_set_v6only(int s) | - |
2232 | { | - |
2233 | | - |
2234 | int on = 1; | - |
2235 | | - |
2236 | debug3("%s: set socket %d IPV6_V6ONLY", __func__, s); | - |
2237 | if (setsockopt(s, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2238 | IPPROTO_IPV6TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2239 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2240 | 26TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2241 | , &on, sizeof(on)) == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2242 | error("setsockopt IPV6_V6ONLY: %s", strerror( never executed: error("setsockopt IPV6_V6ONLY: %s", strerror( (*__errno_location ()) )); | 0 |
2243 | (*__errno_location ()) never executed: error("setsockopt IPV6_V6ONLY: %s", strerror( (*__errno_location ()) )); | 0 |
2244 | )); never executed: error("setsockopt IPV6_V6ONLY: %s", strerror( (*__errno_location ()) )); | 0 |
2245 | | - |
2246 | } never executed: end of block | 0 |
2247 | | - |
2248 | | - |
2249 | | - |
2250 | | - |
2251 | | - |
2252 | static int | - |
2253 | strcmp_maybe_null(const char *a, const char *b) | - |
2254 | { | - |
2255 | if ((a == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2256 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2257 | && b != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2258 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2259 | ) || (a != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2260 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2261 | && b == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2262 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2263 | )) | - |
2264 | return never executed: return 0; 0;never executed: return 0; | 0 |
2265 | if (a != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2266 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2267 | && | - |
2268 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2269 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2270 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2271 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2272 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2273 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2274 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2275 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2276 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2277 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2278 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2279 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2280 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2281 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2282 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2283 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2284 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2285 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2286 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2287 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2288 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2289 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2290 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2291 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2292 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2293 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2294 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2295 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2296 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2297 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2298 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2299 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2300 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2301 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2302 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2303 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2304 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2305 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2306 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2307 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2308 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2309 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2310 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2311 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2312 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2313 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2314 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( a ))[3] - __s2[3]); | 0 |
2315 | aTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( a ))[3] - __s2[3]); | 0 |
2316 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2317 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2318 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2319 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2320 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2321 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2322 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2323 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2324 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2325 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2326 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2327 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2328 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2329 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2330 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2331 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2332 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2333 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2334 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2335 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2336 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2337 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2338 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2339 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2340 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2341 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2342 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( b ))[3] - __s2[3]); | 0 |
2343 | bTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( b ))[3] - __s2[3]); | 0 |
2344 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2345 | aTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2346 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2347 | bTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2348 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2349 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2350 | return never executed: return 0; 0;never executed: return 0; | 0 |
2351 | return never executed: return 1; 1;never executed: return 1; | 0 |
2352 | } | - |
2353 | | - |
2354 | | - |
2355 | | - |
2356 | | - |
2357 | | - |
2358 | int | - |
2359 | forward_equals(const struct Forward *a, const struct Forward *b) | - |
2360 | { | - |
2361 | if (strcmp_maybe_null(a->listen_host, b->listen_host) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2362 | return never executed: return 0; 0;never executed: return 0; | 0 |
2363 | if (a->listen_port != b->listen_portTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2364 | return never executed: return 0; 0;never executed: return 0; | 0 |
2365 | if (strcmp_maybe_null(a->listen_path, b->listen_path) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2366 | return never executed: return 0; 0;never executed: return 0; | 0 |
2367 | if (strcmp_maybe_null(a->connect_host, b->connect_host) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2368 | return never executed: return 0; 0;never executed: return 0; | 0 |
2369 | if (a->connect_port != b->connect_portTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2370 | return never executed: return 0; 0;never executed: return 0; | 0 |
2371 | if (strcmp_maybe_null(a->connect_path, b->connect_path) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2372 | return never executed: return 0; 0;never executed: return 0; | 0 |
2373 | | - |
2374 | return never executed: return 1; 1;never executed: return 1; | 0 |
2375 | } | - |
2376 | | - |
2377 | | - |
2378 | int | - |
2379 | daemonized(void) | - |
2380 | { | - |
2381 | int fd; | - |
2382 | | - |
2383 | if ((TRUE | never evaluated | FALSE | never evaluated |
fd = open(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2384 | "/dev/tty"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2385 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2386 | 00 TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2387 | | TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2388 | 0400TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2389 | )) >= 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2390 | close(fd); | - |
2391 | return never executed: return 0; 0;never executed: return 0; | 0 |
2392 | } | - |
2393 | if (getppid() != 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2394 | return never executed: return 0; 0;never executed: return 0; | 0 |
2395 | if (getsid(0) != getpid()TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2396 | return never executed: return 0; 0;never executed: return 0; | 0 |
2397 | debug3("already daemonized"); | - |
2398 | return never executed: return 1; 1;never executed: return 1; | 0 |
2399 | } | - |
2400 | | - |
2401 | | - |
2402 | | - |
2403 | | - |
2404 | | - |
2405 | | - |
2406 | | - |
2407 | int | - |
2408 | argv_split(const char *s, int *argcp, char ***argvp) | - |
2409 | { | - |
2410 | int r = -1; | - |
2411 | int argc = 0, quote, i, j; | - |
2412 | char *arg, **argv = xcalloc(1, sizeof(*argv)); | - |
2413 | | - |
2414 | *argvp = | - |
2415 | ((void *)0) | - |
2416 | ; | - |
2417 | *argcp = 0; | - |
2418 | | - |
2419 | for (i = 0; s[i] != '\0'TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
2420 | | - |
2421 | if (s[i] == ' 'TRUE | never evaluated | FALSE | never evaluated |
|| s[i] == '\t'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2422 | continue; never executed: continue; | 0 |
2423 | | - |
2424 | | - |
2425 | quote = 0; | - |
2426 | if (s[i] == '\\'TRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
2427 | (s[i + 1] == '\''TRUE | never evaluated | FALSE | never evaluated |
|| s[i + 1] == '\"'TRUE | never evaluated | FALSE | never evaluated |
|| s[i + 1] == '\\'TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
2428 | i++; never executed: i++; | 0 |
2429 | else if (s[i] == '\''TRUE | never evaluated | FALSE | never evaluated |
|| s[i] == '"'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2430 | quote = s[i++]; never executed: quote = s[i++]; | 0 |
2431 | | - |
2432 | argv = xreallocarray(argv, (argc + 2), sizeof(*argv)); | - |
2433 | arg = argv[argc++] = xcalloc(1, strlen(s + i) + 1); | - |
2434 | argv[argc] = | - |
2435 | ((void *)0) | - |
2436 | ; | - |
2437 | | - |
2438 | | - |
2439 | for (j = 0; s[i] != '\0'TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
2440 | if (s[i] == '\\'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2441 | if (s[i + 1] == '\''TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
2442 | s[i + 1] == '\"'TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
2443 | s[i + 1] == '\\'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2444 | i++; | - |
2445 | arg[j++] = s[i]; | - |
2446 | } never executed: end of block else { | 0 |
2447 | | - |
2448 | arg[j++] = s[i]; | - |
2449 | } never executed: end of block | 0 |
2450 | } else if (quote == 0TRUE | never evaluated | FALSE | never evaluated |
&& (s[i] == ' 'TRUE | never evaluated | FALSE | never evaluated |
|| s[i] == '\t'TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
2451 | break; never executed: break; | 0 |
2452 | else if (quote != 0TRUE | never evaluated | FALSE | never evaluated |
&& s[i] == quoteTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2453 | break; never executed: break; | 0 |
2454 | else | - |
2455 | arg[j++] = s[i]; never executed: arg[j++] = s[i]; | 0 |
2456 | } | - |
2457 | if (s[i] == '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2458 | if (quote != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2459 | | - |
2460 | r = -4; | - |
2461 | goto never executed: goto out; out;never executed: goto out; | 0 |
2462 | } | - |
2463 | break; never executed: break; | 0 |
2464 | } | - |
2465 | } never executed: end of block | 0 |
2466 | | - |
2467 | *argcp = argc; | - |
2468 | *argvp = argv; | - |
2469 | argc = 0; | - |
2470 | argv = | - |
2471 | ((void *)0) | - |
2472 | ; | - |
2473 | r = 0; | - |
2474 | out: code before this statement never executed: out: | 0 |
2475 | if (argc != 0TRUE | never evaluated | FALSE | never evaluated |
&& argv != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2476 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2477 | ) { | - |
2478 | for (i = 0; i < argcTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
2479 | free(argv[i]); never executed: free(argv[i]); | 0 |
2480 | free(argv); | - |
2481 | } never executed: end of block | 0 |
2482 | return never executed: return r; r;never executed: return r; | 0 |
2483 | } | - |
2484 | | - |
2485 | | - |
2486 | | - |
2487 | | - |
2488 | | - |
2489 | char * | - |
2490 | argv_assemble(int argc, char **argv) | - |
2491 | { | - |
2492 | int i, j, ws, r; | - |
2493 | char c, *ret; | - |
2494 | struct sshbuf *buf, *arg; | - |
2495 | | - |
2496 | if ((TRUE | never evaluated | FALSE | never evaluated |
buf = sshbuf_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2497 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2498 | || (TRUE | never evaluated | FALSE | never evaluated |
arg = sshbuf_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2499 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2500 | ) | - |
2501 | fatal("%s: sshbuf_new failed", __func__); never executed: fatal("%s: sshbuf_new failed", __func__); | 0 |
2502 | | - |
2503 | for (i = 0; i < argcTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
2504 | ws = 0; | - |
2505 | sshbuf_reset(arg); | - |
2506 | for (j = 0; argv[i][j] != '\0'TRUE | never evaluated | FALSE | never evaluated |
; j++) { | 0 |
2507 | r = 0; | - |
2508 | c = argv[i][j]; | - |
2509 | switch (c) { | - |
2510 | case never executed: case ' ': ' ':never executed: case ' ': | 0 |
2511 | case never executed: case '\t': '\t':never executed: case '\t': | 0 |
2512 | ws = 1; | - |
2513 | r = sshbuf_put_u8(arg, c); | - |
2514 | break; never executed: break; | 0 |
2515 | case never executed: case '\\': '\\':never executed: case '\\': | 0 |
2516 | case never executed: case '\'': '\'':never executed: case '\'': | 0 |
2517 | case never executed: case '"': '"':never executed: case '"': | 0 |
2518 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_put_u8(arg, '\\')) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2519 | break; never executed: break; | 0 |
2520 | | - |
2521 | default never executed: default: :never executed: default: code before this statement never executed: default: | 0 |
2522 | r = sshbuf_put_u8(arg, c); | - |
2523 | break; never executed: break; | 0 |
2524 | } | - |
2525 | if (r != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2526 | fatal("%s: sshbuf_put_u8: %s", never executed: fatal("%s: sshbuf_put_u8: %s", __func__, ssh_err(r)); | 0 |
2527 | __func__, ssh_err(r)); never executed: fatal("%s: sshbuf_put_u8: %s", __func__, ssh_err(r)); | 0 |
2528 | } never executed: end of block | 0 |
2529 | if ((i != 0TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_put_u8(buf, ' ')) != 0TRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
2530 | (ws != 0TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_put_u8(buf, '"')) != 0TRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
2531 | (TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_putb(buf, arg)) != 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
2532 | (ws != 0TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_put_u8(buf, '"')) != 0TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
2533 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
2534 | } never executed: end of block | 0 |
2535 | if ((TRUE | never evaluated | FALSE | never evaluated |
ret = malloc(sshbuf_len(buf) + 1)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2536 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2537 | ) | - |
2538 | fatal("%s: malloc failed", __func__); never executed: fatal("%s: malloc failed", __func__); | 0 |
2539 | memcpy(ret, sshbuf_ptr(buf), sshbuf_len(buf)); | - |
2540 | ret[sshbuf_len(buf)] = '\0'; | - |
2541 | sshbuf_free(buf); | - |
2542 | sshbuf_free(arg); | - |
2543 | return never executed: return ret; ret;never executed: return ret; | 0 |
2544 | } | - |
2545 | | - |
2546 | | - |
2547 | int | - |
2548 | exited_cleanly(pid_t pid, const char *tag, const char *cmd, int quiet) | - |
2549 | { | - |
2550 | int status; | - |
2551 | | - |
2552 | while (waitpid(pid, &status, 0) == -1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2553 | if ( | - |
2554 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2555 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2556 | 4TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2557 | ) { | - |
2558 | error("%s: waitpid: %s", tag, strerror( | - |
2559 | (*__errno_location ()) | - |
2560 | )); | - |
2561 | return never executed: return -1; -1;never executed: return -1; | 0 |
2562 | } | - |
2563 | } never executed: end of block | 0 |
2564 | if ( | - |
2565 | (((TRUE | never evaluated | FALSE | never evaluated |
signed char) (((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2566 | statusTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2567 | ) & 0x7f) + 1) >> 1) > 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2568 | ) { | - |
2569 | error("%s %s exited on signal %d", tag, cmd, | - |
2570 | (( | - |
2571 | status | - |
2572 | ) & 0x7f) | - |
2573 | ); | - |
2574 | return never executed: return -1; -1;never executed: return -1; | 0 |
2575 | } else if ( | - |
2576 | (((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2577 | statusTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2578 | ) & 0xff00) >> 8) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2579 | != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2580 | do_log2(quiet ? SYSLOG_LEVEL_DEBUG1 : SYSLOG_LEVEL_INFO, | - |
2581 | "%s %s failed, status %d", tag, cmd, | - |
2582 | ((( | - |
2583 | status | - |
2584 | ) & 0xff00) >> 8) | - |
2585 | ); | - |
2586 | return never executed: return -1; -1;never executed: return -1; | 0 |
2587 | } | - |
2588 | return never executed: return 0; 0;never executed: return 0; | 0 |
2589 | } | - |
2590 | int | - |
2591 | safe_path(const char *name, struct stat *stp, const char *pw_dir, | - |
2592 | uid_t uid, char *err, size_t errlen) | - |
2593 | { | - |
2594 | char buf[ | - |
2595 | 4096 | - |
2596 | ], homedir[ | - |
2597 | 4096 | - |
2598 | ]; | - |
2599 | char *cp; | - |
2600 | int comparehome = 0; | - |
2601 | struct stat st; | - |
2602 | | - |
2603 | if (_ssh_compat_realpath(name, buf) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2604 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2605 | ) { | - |
2606 | snprintf(err, errlen, "realpath %s failed: %s", name, | - |
2607 | strerror( | - |
2608 | (*__errno_location ()) | - |
2609 | )); | - |
2610 | return never executed: return -1; -1;never executed: return -1; | 0 |
2611 | } | - |
2612 | if (pw_dir != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2613 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2614 | && _ssh_compat_realpath(pw_dir, homedir) != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2615 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2616 | ) | - |
2617 | comparehome = 1; never executed: comparehome = 1; | 0 |
2618 | | - |
2619 | if (!TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2620 | ((((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2621 | stp->st_modeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2622 | )) & 0170000) == (0100000))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2623 | ) { | - |
2624 | snprintf(err, errlen, "%s is not a regular file", buf); | - |
2625 | return never executed: return -1; -1;never executed: return -1; | 0 |
2626 | } | - |
2627 | if ((!platform_sys_dir_uid(stp->st_uid)TRUE | never evaluated | FALSE | never evaluated |
&& stp->st_uid != uidTRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
2628 | (TRUE | never evaluated | FALSE | never evaluated |
stp->st_mode & 022) != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2629 | snprintf(err, errlen, "bad ownership or modes for file %s", | - |
2630 | buf); | - |
2631 | return never executed: return -1; -1;never executed: return -1; | 0 |
2632 | } | - |
2633 | | - |
2634 | | - |
2635 | for (;;) { | - |
2636 | if ((TRUE | never evaluated | FALSE | never evaluated |
cp = dirname(buf)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2637 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2638 | ) { | - |
2639 | snprintf(err, errlen, "dirname() failed"); | - |
2640 | return never executed: return -1; -1;never executed: return -1; | 0 |
2641 | } | - |
2642 | strlcpy(buf, cp, sizeof(buf)); | - |
2643 | | - |
2644 | if (stat(buf, &st) < 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
2645 | (!platform_sys_dir_uid(st.st_uid)TRUE | never evaluated | FALSE | never evaluated |
&& st.st_uid != uidTRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
2646 | (TRUE | never evaluated | FALSE | never evaluated |
st.st_mode & 022) != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2647 | snprintf(err, errlen, | - |
2648 | "bad ownership or modes for directory %s", buf); | - |
2649 | return never executed: return -1; -1;never executed: return -1; | 0 |
2650 | } | - |
2651 | | - |
2652 | | - |
2653 | if (comparehomeTRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
2654 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2655 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2656 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2657 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2658 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2659 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2660 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2661 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2662 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2663 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2664 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2665 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2666 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2667 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2668 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2669 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2670 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2671 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2672 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2673 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2674 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2675 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2676 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2677 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2678 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2679 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2680 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2681 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2682 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2683 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2684 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2685 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2686 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2687 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2688 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2689 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2690 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2691 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2692 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2693 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2694 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2695 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2696 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2697 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2698 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2699 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2700 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( homedir ))[3] - __s2[3]); | 0 |
2701 | homedirTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( homedir ))[3] - __s2[3]); | 0 |
2702 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2703 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2704 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2705 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2706 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2707 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2708 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2709 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2710 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2711 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2712 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2713 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2714 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2715 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2716 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2717 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2718 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2719 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2720 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2721 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2722 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2723 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2724 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2725 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2726 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2727 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2728 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2729 | bufTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2730 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2731 | homedirTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2732 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2733 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2734 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2735 | == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2736 | break; never executed: break; | 0 |
2737 | | - |
2738 | | - |
2739 | | - |
2740 | | - |
2741 | | - |
2742 | if ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2743 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2744 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2745 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2746 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2747 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2748 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2749 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2750 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2751 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2752 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2753 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2754 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2755 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2756 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2757 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2758 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2759 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2760 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2761 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2762 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2763 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2764 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2765 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2766 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2767 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2768 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2769 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2770 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2771 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2772 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2773 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2774 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2775 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2776 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2777 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2778 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2779 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2780 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2781 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2782 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2783 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2784 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2785 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2786 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2787 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2788 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2789 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "/" ))[3] - __s2[3]); | 0 |
2790 | "/"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "/" ))[3] - __s2[3]); | 0 |
2791 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2792 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2793 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2794 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2795 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2796 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2797 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2798 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2799 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2800 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2801 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2802 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2803 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2804 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2805 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2806 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2807 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2808 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2809 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2810 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2811 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2812 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2813 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2814 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2815 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2816 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2817 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2818 | bufTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2819 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2820 | "/"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2821 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2822 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2823 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2824 | == 0)TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2825 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2826 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2827 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2828 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2829 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2830 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2831 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2832 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2833 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2834 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2835 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2836 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2837 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2838 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2839 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2840 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2841 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2842 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2843 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2844 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2845 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2846 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2847 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2848 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2849 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2850 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2851 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2852 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2853 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2854 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2855 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2856 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2857 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2858 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2859 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2860 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2861 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2862 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2863 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2864 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2865 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2866 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2867 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2868 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2869 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2870 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2871 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "." ))[3] - __s2[3]); | 0 |
2872 | "."TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "." ))[3] - __s2[3]); | 0 |
2873 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2874 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2875 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2876 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2877 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2878 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2879 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2880 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2881 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2882 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2883 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2884 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2885 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2886 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2887 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2888 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2889 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2890 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2891 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2892 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2893 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2894 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2895 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2896 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2897 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2898 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2899 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2900 | bufTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]); | 0 |
2901 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2902 | "."TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2903 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2904 | bufTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2905 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2906 | == 0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
2907 | break; never executed: break; | 0 |
2908 | } never executed: end of block | 0 |
2909 | return never executed: return 0; 0;never executed: return 0; | 0 |
2910 | } | - |
2911 | | - |
2912 | | - |
2913 | | - |
2914 | | - |
2915 | | - |
2916 | | - |
2917 | | - |
2918 | int | - |
2919 | safe_path_fd(int fd, const char *file, struct passwd *pw, | - |
2920 | char *err, size_t errlen) | - |
2921 | { | - |
2922 | struct stat st; | - |
2923 | | - |
2924 | | - |
2925 | if (fstat(fd, &st) < 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2926 | snprintf(err, errlen, "cannot stat file %s: %s", | - |
2927 | file, strerror( | - |
2928 | (*__errno_location ()) | - |
2929 | )); | - |
2930 | return never executed: return -1; -1;never executed: return -1; | 0 |
2931 | } | - |
2932 | return never executed: return safe_path(file, &st, pw->pw_dir, pw->pw_uid, err, errlen); safe_path(file, &st, pw->pw_dir, pw->pw_uid, err, errlen);never executed: return safe_path(file, &st, pw->pw_dir, pw->pw_uid, err, errlen); | 0 |
2933 | } | - |
2934 | | - |
2935 | | - |
2936 | | - |
2937 | | - |
2938 | | - |
2939 | void | - |
2940 | child_set_env(char ***envp, u_int *envsizep, const char *name, | - |
2941 | const char *value) | - |
2942 | { | - |
2943 | char **env; | - |
2944 | u_int envsize; | - |
2945 | u_int i, namelen; | - |
2946 | | - |
2947 | if ( | - |
2948 | (TRUE | never evaluated | FALSE | never evaluated |
__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2949 | '='TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2950 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2951 | nameTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2952 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2953 | '='TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2954 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2955 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2956 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2957 | '='TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2958 | ) : __builtin_strchr (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2959 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
2960 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2961 | '='TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2962 | ))) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2963 | != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2964 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2965 | ) { | - |
2966 | error("Invalid environment variable \"%.100s\"", name); | - |
2967 | return; never executed: return; | 0 |
2968 | } | - |
2969 | | - |
2970 | | - |
2971 | | - |
2972 | | - |
2973 | | - |
2974 | if (*TRUE | never evaluated | FALSE | never evaluated |
envp == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2975 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2976 | && *TRUE | never evaluated | FALSE | never evaluated |
envsizep == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
2977 | *envp = xmalloc(sizeof(char *)); | - |
2978 | *envp[0] = | - |
2979 | ((void *)0) | - |
2980 | ; | - |
2981 | *envsizep = 1; | - |
2982 | } never executed: end of block | 0 |
2983 | | - |
2984 | | - |
2985 | | - |
2986 | | - |
2987 | | - |
2988 | | - |
2989 | env = *envp; | - |
2990 | namelen = strlen(name); | - |
2991 | for (i = 0; env[i]TRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
2992 | if ( | - |
2993 | (TRUE | never evaluated | FALSE | never evaluated |
__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2994 | namelenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2995 | )TRUE | never evaluated | FALSE | never evaluated |
&& ((__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2996 | env[i]TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2997 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2998 | env[i]TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
2999 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3000 | namelenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3001 | ))TRUE | never evaluated | FALSE | never evaluated |
) || (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3002 | nameTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3003 | )TRUE | never evaluated | FALSE | never evaluated |
&& strlen (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3004 | nameTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3005 | ) < ((size_t) (TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3006 | namelenTRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3007 | ))TRUE | never evaluated | FALSE | never evaluated |
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3008 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3009 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3010 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3011 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3012 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3013 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3014 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3015 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3016 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3017 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3018 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3019 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3020 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3021 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3022 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3023 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3024 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3025 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3026 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3027 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3028 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3029 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3030 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3031 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3032 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3033 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3034 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3035 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3036 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3037 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3038 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3039 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3040 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3041 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3042 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3043 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3044 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3045 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3046 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3047 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3048 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3049 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3050 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3051 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3052 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3053 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( env[i] ))[3] - __s2[3]); | 0 |
3054 | env[i]TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( env[i] ))[3] - __s2[3]); | 0 |
3055 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3056 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3057 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3058 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3059 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3060 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3061 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3062 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3063 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3064 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3065 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3066 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3067 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3068 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3069 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3070 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3071 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3072 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3073 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3074 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3075 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3076 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3077 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3078 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3079 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3080 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3081 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); | 0 |
3082 | nameTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); | 0 |
3083 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3084 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3085 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3086 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3087 | )))); }) : strncmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3088 | env[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3089 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3090 | nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3091 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3092 | namelenTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3093 | ))) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3094 | == 0TRUE | never evaluated | FALSE | never evaluated |
&& env[i][namelen] == '='TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3095 | break; never executed: break; | 0 |
3096 | if (env[i]TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
3097 | | - |
3098 | free(env[i]); | - |
3099 | } never executed: end of block else { | 0 |
3100 | | - |
3101 | envsize = *envsizep; | - |
3102 | if (i >= envsize - 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
3103 | if (envsize >= 1000TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3104 | fatal("child_set_env: too many env vars"); never executed: fatal("child_set_env: too many env vars"); | 0 |
3105 | envsize += 50; | - |
3106 | env = (*envp) = xreallocarray(env, envsize, sizeof(char *)); | - |
3107 | *envsizep = envsize; | - |
3108 | } never executed: end of block | 0 |
3109 | | - |
3110 | env[i + 1] = | - |
3111 | ((void *)0) | - |
3112 | ; | - |
3113 | } never executed: end of block | 0 |
3114 | | - |
3115 | | - |
3116 | | - |
3117 | env[i] = xmalloc(strlen(name) + 1 + strlen(value) + 1); | - |
3118 | snprintf(env[i], strlen(name) + 1 + strlen(value) + 1, "%s=%s", name, value); | - |
3119 | } never executed: end of block | 0 |
3120 | | - |
3121 | | - |
3122 | | - |
3123 | | - |
3124 | | - |
3125 | int | - |
3126 | valid_domain(char *name, int makelower, const char **errstr) | - |
3127 | { | - |
3128 | size_t i, l = strlen(name); | - |
3129 | u_char c, last = '\0'; | - |
3130 | static char errbuf[256]; | - |
3131 | | - |
3132 | if (l == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
3133 | strlcpy(errbuf, "empty domain name", sizeof(errbuf)); | - |
3134 | goto never executed: goto bad; bad;never executed: goto bad; | 0 |
3135 | } | - |
3136 | if (!TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3137 | ((*__ctype_b_loc ())[(int) ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3138 | (u_char)name[0]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3139 | ))] & (unsigned short int) _ISalpha)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3140 | && !TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3141 | ((*__ctype_b_loc ())[(int) ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3142 | (u_char)name[0]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3143 | ))] & (unsigned short int) _ISdigit)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3144 | ) { | - |
3145 | snprintf(errbuf, sizeof(errbuf), "domain name \"%.100s\" " | - |
3146 | "starts with invalid character", name); | - |
3147 | goto never executed: goto bad; bad;never executed: goto bad; | 0 |
3148 | } | - |
3149 | for (i = 0; i < lTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
3150 | c = | - |
3151 | (__extension__ ({ int __res; if (sizeof (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3152 | (u_char)name[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3153 | ) > 1TRUE | never evaluated | FALSE | never evaluated |
) { if (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3154 | (u_char)name[i]TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3155 | )TRUE | never evaluated | FALSE | never evaluated |
) { int __c = ( | 0 |
3156 | (u_char)name[i] | - |
3157 | ); __res = __c < -128TRUE | never evaluated | FALSE | never evaluated |
|| __c > 255TRUE | never evaluated | FALSE | never evaluated |
? __c : (*__ctype_tolower_loc ())[__c]; }never executed: end of block else __res = tolower (never executed: __res = tolower ( (u_char)name[i] ); | 0 |
3158 | (u_char)name[i] never executed: __res = tolower ( (u_char)name[i] ); | 0 |
3159 | ); never executed: __res = tolower ( (u_char)name[i] ); } else __res = (*__ctype_tolower_loc ())[(int) (never executed: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)name[i] )]; | 0 |
3160 | (u_char)name[i] never executed: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)name[i] )]; | 0 |
3161 | )]; never executed: __res = (*__ctype_tolower_loc ())[(int) ( (u_char)name[i] )]; __res; })) | 0 |
3162 | ; | - |
3163 | if (makelowerTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3164 | name[i] = (char)c; never executed: name[i] = (char)c; | 0 |
3165 | if (last == '.'TRUE | never evaluated | FALSE | never evaluated |
&& c == '.'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
3166 | snprintf(errbuf, sizeof(errbuf), "domain name " | - |
3167 | "\"%.100s\" contains consecutive separators", name); | - |
3168 | goto never executed: goto bad; bad;never executed: goto bad; | 0 |
3169 | } | - |
3170 | if (c != '.'TRUE | never evaluated | FALSE | never evaluated |
&& c != '-'TRUE | never evaluated | FALSE | never evaluated |
&& !TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3171 | ((*__ctype_b_loc ())[(int) ((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3172 | cTRUE | never evaluated | FALSE | never evaluated |
| 0 |
3173 | ))] & (unsigned short int) _ISalnum)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3174 | && | - |
3175 | c != '_'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
3176 | snprintf(errbuf, sizeof(errbuf), "domain name " | - |
3177 | "\"%.100s\" contains invalid characters", name); | - |
3178 | goto never executed: goto bad; bad;never executed: goto bad; | 0 |
3179 | } | - |
3180 | last = c; | - |
3181 | } never executed: end of block | 0 |
3182 | if (name[l - 1] == '.'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3183 | name[l - 1] = '\0'; never executed: name[l - 1] = '\0'; | 0 |
3184 | if (errstr != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3185 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3186 | ) | - |
3187 | * never executed: *errstr = ((void *)0) ; errstr = never executed: *errstr = ((void *)0) ; | 0 |
3188 | ((void *)0) never executed: *errstr = ((void *)0) ; | 0 |
3189 | ; never executed: *errstr = ((void *)0) ; | 0 |
3190 | return never executed: return 1; 1;never executed: return 1; | 0 |
3191 | bad: | - |
3192 | if (errstr != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3193 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3194 | ) | - |
3195 | * never executed: *errstr = errbuf; errstr = errbuf;never executed: *errstr = errbuf; | 0 |
3196 | return never executed: return 0; 0;never executed: return 0; | 0 |
3197 | } | - |
3198 | | - |
3199 | const char * | - |
3200 | atoi_err(const char *nptr, int *val) | - |
3201 | { | - |
3202 | const char *errstr = | - |
3203 | ((void *)0) | - |
3204 | ; | - |
3205 | long long num; | - |
3206 | | - |
3207 | if (nptr == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3208 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3209 | || *TRUE | never evaluated | FALSE | never evaluated |
nptr == '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3210 | return never executed: return "missing"; "missing";never executed: return "missing"; | 0 |
3211 | num = strtonum(nptr, 0, 0x7fffffff, &errstr); | - |
3212 | if (errstr == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3213 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3214 | ) | - |
3215 | * never executed: *val = (int)num; val = (int)num;never executed: *val = (int)num; | 0 |
3216 | return never executed: return errstr; errstr;never executed: return errstr; | 0 |
3217 | } | - |
3218 | | - |
3219 | int | - |
3220 | parse_absolute_time(const char *s, uint64_t *tp) | - |
3221 | { | - |
3222 | struct tm tm; | - |
3223 | time_t tt; | - |
3224 | char buf[32], *fmt; | - |
3225 | | - |
3226 | *tp = 0; | - |
3227 | | - |
3228 | | - |
3229 | | - |
3230 | | - |
3231 | | - |
3232 | | - |
3233 | switch (strlen(s)) { | - |
3234 | case never executed: case 8: 8:never executed: case 8: | 0 |
3235 | fmt = "%Y-%m-%d"; | - |
3236 | snprintf(buf, sizeof(buf), "%.4s-%.2s-%.2s", s, s + 4, s + 6); | - |
3237 | break; never executed: break; | 0 |
3238 | case never executed: case 12: 12:never executed: case 12: | 0 |
3239 | fmt = "%Y-%m-%dT%H:%M"; | - |
3240 | snprintf(buf, sizeof(buf), "%.4s-%.2s-%.2sT%.2s:%.2s", | - |
3241 | s, s + 4, s + 6, s + 8, s + 10); | - |
3242 | break; never executed: break; | 0 |
3243 | case never executed: case 14: 14:never executed: case 14: | 0 |
3244 | fmt = "%Y-%m-%dT%H:%M:%S"; | - |
3245 | snprintf(buf, sizeof(buf), "%.4s-%.2s-%.2sT%.2s:%.2s:%.2s", | - |
3246 | s, s + 4, s + 6, s + 8, s + 10, s + 12); | - |
3247 | break; never executed: break; | 0 |
3248 | default never executed: default: :never executed: default: | 0 |
3249 | return never executed: return -4; -4;never executed: return -4; | 0 |
3250 | } | - |
3251 | | - |
3252 | memset(&tm, 0, sizeof(tm)); | - |
3253 | if (strptime(buf, fmt, &tm) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3254 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
3255 | ) | - |
3256 | return never executed: return -4; -4;never executed: return -4; | 0 |
3257 | if ((TRUE | never evaluated | FALSE | never evaluated |
tt = mktime(&tm)) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
3258 | return never executed: return -4; -4;never executed: return -4; | 0 |
3259 | | - |
3260 | *tp = (uint64_t)tt; | - |
3261 | return never executed: return 0; 0;never executed: return 0; | 0 |
3262 | } | - |
3263 | | - |
3264 | void | - |
3265 | format_absolute_time(uint64_t t, char *buf, size_t len) | - |
3266 | { | - |
3267 | time_t tt = t > 0x7fffffffTRUE | never evaluated | FALSE | never evaluated |
? 0x7fffffff : t; | 0 |
3268 | struct tm tm; | - |
3269 | | - |
3270 | localtime_r(&tt, &tm); | - |
3271 | strftime(buf, len, "%Y-%m-%dT%H:%M:%S", &tm); | - |
3272 | } never executed: end of block | 0 |
| | |