OpenCoverage

channels.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/channels.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-
15-
16-
17-
18-
19-
20typedef void chan_fn(struct ssh *, Channel *c,-
21 fd_set *readset, fd_set *writeset);-
22struct permission {-
23 char *host_to_connect;-
24 int port_to_connect;-
25 char *listen_host;-
26 char *listen_path;-
27 int listen_port;-
28 Channel *downstream;-
29};-
30-
31-
32-
33-
34-
35struct permission_set {-
36-
37-
38-
39-
40 u_int num_permitted_user;-
41 struct permission *permitted_user;-
42-
43-
44-
45-
46 u_int num_permitted_admin;-
47 struct permission *permitted_admin;-
48-
49-
50-
51-
52-
53-
54 int all_permitted;-
55};-
56-
57-
58struct ssh_channels {-
59-
60-
61-
62-
63 Channel **channels;-
64-
65-
66-
67-
68-
69 u_int channels_alloc;-
70-
71-
72-
73-
74-
75 int channel_max_fd;-
76 chan_fn **channel_pre;-
77 chan_fn **channel_post;-
78-
79-
80 struct permission_set local_perms;-
81 struct permission_set remote_perms;-
82-
83-
84-
85-
86 char *x11_saved_display;-
87-
88-
89 char *x11_saved_proto;-
90-
91-
92 char *x11_saved_data;-
93 u_int x11_saved_data_len;-
94-
95-
96 u_int x11_refuse_time;-
97-
98-
99-
100-
101-
102-
103 u_char *x11_fake_data;-
104 u_int x11_fake_data_len;-
105-
106-
107 int IPv4or6;-
108};-
109-
110-
111static void port_open_helper(struct ssh *ssh, Channel *c, char *rtype);-
112static const char *channel_rfwd_bind_host(const char *listen_host);-
113-
114-
115static int connect_next(struct channel_connect *);-
116static void channel_connect_ctx_free(struct channel_connect *);-
117static Channel *rdynamic_connect_prepare(struct ssh *, char *, char *);-
118static int rdynamic_connect_finish(struct ssh *, Channel *);-
119-
120-
121static void channel_handler_init(struct ssh_channels *sc);-
122-
123-
124-
125void-
126channel_init_channels(struct ssh *ssh)-
127{-
128 struct ssh_channels *sc;-
129-
130 if ((
(sc = calloc(1...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc = calloc(1, sizeof(*sc))) ==
(sc = calloc(1...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
131 ((void *)0)
(sc = calloc(1...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
132 ||-
133 (
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc->channel_pre = calloc(23,
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
134 sizeof(*sc->channel_pre))) ==
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
135 ((void *)0)
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
136 ||-
137 (
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc->channel_post = calloc(23,
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
138 sizeof(*sc->channel_post))) ==
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
139 ((void *)0)
(sc->channel_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
140 )-
141 fatal("%s: allocation failed", __func__);
never executed: fatal("%s: allocation failed", __func__);
0
142 sc->channels_alloc = 10;-
143 sc->channels = xcalloc(sc->channels_alloc, sizeof(*sc->channels));-
144 sc->IPv4or6 = -
145 0-
146 ;-
147 channel_handler_init(sc);-
148-
149 ssh->chanctxt = sc;-
150}
never executed: end of block
0
151-
152Channel *-
153channel_by_id(struct ssh *ssh, int id)-
154{-
155 Channel *c;-
156-
157 if (id < 0
id < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(u_int)id >= s...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
u_int)id >= ssh->chanctxt->channels_alloc
(u_int)id >= s...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
158 logit("%s: %d: bad id", __func__, id);-
159 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
160 ((void *)0)
never executed: return ((void *)0) ;
0
161 ;
never executed: return ((void *)0) ;
0
162 }-
163 c = ssh->chanctxt->channels[id];-
164 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
165 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
166 ) {-
167 logit("%s: %d: bad id: channel free", __func__, id);-
168 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
169 ((void *)0)
never executed: return ((void *)0) ;
0
170 ;
never executed: return ((void *)0) ;
0
171 }-
172 return
never executed: return c;
c;
never executed: return c;
0
173}-
174-
175Channel *-
176channel_by_remote_id(struct ssh *ssh, u_int remote_id)-
177{-
178 Channel *c;-
179 u_int i;-
180-
181 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
182 c = ssh->chanctxt->channels[i];-
183 if (c !=
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
184 ((void *)0)
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
185 && c->have_remote_id
c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
&& c->remote_id == remote_id
c->remote_id == remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
186 return
never executed: return c;
c;
never executed: return c;
0
187 }
never executed: end of block
0
188 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
189 ((void *)0)
never executed: return ((void *)0) ;
0
190 ;
never executed: return ((void *)0) ;
0
191}-
192-
193-
194-
195-
196-
197Channel *-
198channel_lookup(struct ssh *ssh, int id)-
199{-
200 Channel *c;-
201-
202 if ((
(c = channel_b...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_by_id(ssh, id)) ==
(c = channel_b...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
203 ((void *)0)
(c = channel_b...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
204 )-
205 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
206 ((void *)0)
never executed: return ((void *)0) ;
0
207 ;
never executed: return ((void *)0) ;
0
208-
209 switch (c->type) {-
210 case
never executed: case 7:
7:
never executed: case 7:
0
211 case
never executed: case 10:
10:
never executed: case 10:
0
212 case
never executed: case 12:
12:
never executed: case 12:
0
213 case
never executed: case 13:
13:
never executed: case 13:
0
214 case
never executed: case 21:
21:
never executed: case 21:
0
215 case
never executed: case 22:
22:
never executed: case 22:
0
216 case
never executed: case 3:
3:
never executed: case 3:
0
217 case
never executed: case 4:
4:
never executed: case 4:
0
218 case
never executed: case 17:
17:
never executed: case 17:
0
219 case
never executed: case 20:
20:
never executed: case 20:
0
220 return
never executed: return c;
c;
never executed: return c;
0
221 }-
222 logit("Non-public channel %d, type %d.", id, c->type);-
223 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
224 ((void *)0)
never executed: return ((void *)0) ;
0
225 ;
never executed: return ((void *)0) ;
0
226}-
227-
228-
229-
230-
231-
232static void-
233channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd,-
234 int extusage, int nonblock, int is_tty)-
235{-
236 struct ssh_channels *sc = ssh->chanctxt;-
237-
238-
239 sc->channel_max_fd = (((
((sc->channel_max_fd) > (rfd))Description
TRUEnever evaluated
FALSEnever evaluated
sc->channel_max_fd) > (rfd))
((sc->channel_max_fd) > (rfd))Description
TRUEnever evaluated
FALSEnever evaluated
? (sc->channel_max_fd) : (rfd));
0
240 sc->channel_max_fd = (((
((sc->channel_max_fd) > (wfd))Description
TRUEnever evaluated
FALSEnever evaluated
sc->channel_max_fd) > (wfd))
((sc->channel_max_fd) > (wfd))Description
TRUEnever evaluated
FALSEnever evaluated
? (sc->channel_max_fd) : (wfd));
0
241 sc->channel_max_fd = (((
((sc->channel_max_fd) > (efd))Description
TRUEnever evaluated
FALSEnever evaluated
sc->channel_max_fd) > (efd))
((sc->channel_max_fd) > (efd))Description
TRUEnever evaluated
FALSEnever evaluated
? (sc->channel_max_fd) : (efd));
0
242-
243 if (rfd != -1
rfd != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
244 fcntl(rfd,
never executed: fcntl(rfd, 2 , 1 );
0
245 2
never executed: fcntl(rfd, 2 , 1 );
0
246 ,
never executed: fcntl(rfd, 2 , 1 );
0
247 1
never executed: fcntl(rfd, 2 , 1 );
0
248 );
never executed: fcntl(rfd, 2 , 1 );
0
249 if (wfd != -1
wfd != -1Description
TRUEnever evaluated
FALSEnever evaluated
&& wfd != rfd
wfd != rfdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
250 fcntl(wfd,
never executed: fcntl(wfd, 2 , 1 );
0
251 2
never executed: fcntl(wfd, 2 , 1 );
0
252 ,
never executed: fcntl(wfd, 2 , 1 );
0
253 1
never executed: fcntl(wfd, 2 , 1 );
0
254 );
never executed: fcntl(wfd, 2 , 1 );
0
255 if (efd != -1
efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
&& efd != rfd
efd != rfdDescription
TRUEnever evaluated
FALSEnever evaluated
&& efd != wfd
efd != wfdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
256 fcntl(efd,
never executed: fcntl(efd, 2 , 1 );
0
257 2
never executed: fcntl(efd, 2 , 1 );
0
258 ,
never executed: fcntl(efd, 2 , 1 );
0
259 1
never executed: fcntl(efd, 2 , 1 );
0
260 );
never executed: fcntl(efd, 2 , 1 );
0
261-
262 c->rfd = rfd;-
263 c->wfd = wfd;-
264 c->sock = (
(rfd == wfd)Description
TRUEnever evaluated
FALSEnever evaluated
rfd == wfd)
(rfd == wfd)Description
TRUEnever evaluated
FALSEnever evaluated
? rfd : -1;
0
265 c->efd = efd;-
266 c->extended_usage = extusage;-
267-
268 if ((
(c->isatty = is_tty) != 0Description
TRUEnever evaluated
FALSEnever evaluated
c->isatty = is_tty) != 0
(c->isatty = is_tty) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
269 debug2("channel %d: rfd %d isatty", c->self, c->rfd);
never executed: debug2("channel %d: rfd %d isatty", c->self, c->rfd);
0
270-
271-
272-
273-
274-
275-
276 if (nonblock
nonblockDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
277 if (rfd != -1
rfd != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
278 set_nonblock(rfd);
never executed: set_nonblock(rfd);
0
279 if (wfd != -1
wfd != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
280 set_nonblock(wfd);
never executed: set_nonblock(wfd);
0
281 if (efd != -1
efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
282 set_nonblock(efd);
never executed: set_nonblock(efd);
0
283 }
never executed: end of block
0
284}
never executed: end of block
0
285-
286-
287-
288-
289-
290Channel *-
291channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd,-
292 u_int window, u_int maxpack, int extusage, char *remote_name, int nonblock)-
293{-
294 struct ssh_channels *sc = ssh->chanctxt;-
295 u_int i, found;-
296 Channel *c;-
297-
298-
299 for (i = 0; i < sc->channels_alloc
i < sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
300 if (sc->channels[i] ==
sc->channels[i] == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
301 ((void *)0)
sc->channels[i] == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
302 ) {-
303-
304 found = i;-
305 break;
never executed: break;
0
306 }-
307 }
never executed: end of block
0
308 if (i >= sc->channels_alloc
i >= sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
309-
310-
311-
312-
313 found = sc->channels_alloc;-
314 if (sc->channels_alloc > (16*1024)
sc->channels_alloc > (16*1024)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
315 fatal("%s: internal error: channels_alloc %d too big",
never executed: fatal("%s: internal error: channels_alloc %d too big", __func__, sc->channels_alloc);
0
316 __func__, sc->channels_alloc);
never executed: fatal("%s: internal error: channels_alloc %d too big", __func__, sc->channels_alloc);
0
317 sc->channels = xrecallocarray(sc->channels, sc->channels_alloc,-
318 sc->channels_alloc + 10, sizeof(*sc->channels));-
319 sc->channels_alloc += 10;-
320 debug2("channel: expanding %d", sc->channels_alloc);-
321 }
never executed: end of block
0
322-
323 c = sc->channels[found] = xcalloc(1, sizeof(Channel));-
324 if ((
(c->input = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c->input = sshbuf_new()) ==
(c->input = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
325 ((void *)0)
(c->input = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
326 ||-
327 (
(c->output = s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c->output = sshbuf_new()) ==
(c->output = s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
328 ((void *)0)
(c->output = s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
329 ||-
330 (
(c->extended =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c->extended = sshbuf_new()) ==
(c->extended =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
331 ((void *)0)
(c->extended =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
332 )-
333 fatal("%s: sshbuf_new failed", __func__);
never executed: fatal("%s: sshbuf_new failed", __func__);
0
334 c->ostate = 0;-
335 c->istate = 0;-
336 channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, 0);-
337 c->self = found;-
338 c->type = type;-
339 c->ctype = ctype;-
340 c->local_window = window;-
341 c->local_window_max = window;-
342 c->local_maxpacket = maxpack;-
343 c->remote_name = xstrdup(remote_name);-
344 c->ctl_chan = -1;-
345 c->delayed = 1;-
346 do { (&c->status_confirms)->tqh_first = -
347((void *)0)-
348; (&c->status_confirms)->tqh_last = &(&c->status_confirms)->tqh_first; } while (0);-
349 debug("channel %d: new [%s]", found, remote_name);-
350 return
never executed: return c;
c;
never executed: return c;
0
351}-
352-
353static void-
354channel_find_maxfd(struct ssh_channels *sc)-
355{-
356 u_int i;-
357 int max = 0;-
358 Channel *c;-
359-
360 for (i = 0; i < sc->channels_alloc
i < sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
361 c = sc->channels[i];-
362 if (c !=
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
363 ((void *)0)
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
364 ) {-
365 max = (((
((max) > (c->rfd))Description
TRUEnever evaluated
FALSEnever evaluated
max) > (c->rfd))
((max) > (c->rfd))Description
TRUEnever evaluated
FALSEnever evaluated
? (max) : (c->rfd));
0
366 max = (((
((max) > (c->wfd))Description
TRUEnever evaluated
FALSEnever evaluated
max) > (c->wfd))
((max) > (c->wfd))Description
TRUEnever evaluated
FALSEnever evaluated
? (max) : (c->wfd));
0
367 max = (((
((max) > (c->efd))Description
TRUEnever evaluated
FALSEnever evaluated
max) > (c->efd))
((max) > (c->efd))Description
TRUEnever evaluated
FALSEnever evaluated
? (max) : (c->efd));
0
368 }
never executed: end of block
0
369 }
never executed: end of block
0
370 sc->channel_max_fd = max;-
371}
never executed: end of block
0
372-
373int-
374channel_close_fd(struct ssh *ssh, int *fdp)-
375{-
376 struct ssh_channels *sc = ssh->chanctxt;-
377 int ret = 0, fd = *fdp;-
378-
379 if (fd != -1
fd != -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
380 ret = close(fd);-
381 *fdp = -1;-
382 if (fd == sc->channel_max_fd
fd == sc->channel_max_fdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
383 channel_find_maxfd(sc);
never executed: channel_find_maxfd(sc);
0
384 }
never executed: end of block
0
385 return
never executed: return ret;
ret;
never executed: return ret;
0
386}-
387-
388-
389static void-
390channel_close_fds(struct ssh *ssh, Channel *c)-
391{-
392 int sock = c->sock, rfd = c->rfd, wfd = c->wfd, efd = c->efd;-
393-
394 channel_close_fd(ssh, &c->sock);-
395 if (rfd != sock
rfd != sockDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
396 channel_close_fd(ssh, &c->rfd);
never executed: channel_close_fd(ssh, &c->rfd);
0
397 if (wfd != sock
wfd != sockDescription
TRUEnever evaluated
FALSEnever evaluated
&& wfd != rfd
wfd != rfdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
398 channel_close_fd(ssh, &c->wfd);
never executed: channel_close_fd(ssh, &c->wfd);
0
399 if (efd != sock
efd != sockDescription
TRUEnever evaluated
FALSEnever evaluated
&& efd != rfd
efd != rfdDescription
TRUEnever evaluated
FALSEnever evaluated
&& efd != wfd
efd != wfdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
400 channel_close_fd(ssh, &c->efd);
never executed: channel_close_fd(ssh, &c->efd);
0
401}
never executed: end of block
0
402-
403static void-
404fwd_perm_clear(struct permission *perm)-
405{-
406 free(perm->host_to_connect);-
407 free(perm->listen_host);-
408 free(perm->listen_path);-
409 bzero(perm, sizeof(*perm));-
410}
never executed: end of block
0
411-
412-
413static const char *-
414fwd_ident(int who, int where)-
415{-
416 if (who == 0x100
who == 0x100Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
417 if (where
where == (1<<1)Description
TRUEnever evaluated
FALSEnever evaluated
== (1<<1)
where == (1<<1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
418 return
never executed: return "admin local";
"admin local";
never executed: return "admin local";
0
419 else if (where
where == (1)Description
TRUEnever evaluated
FALSEnever evaluated
== (1)
where == (1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
420 return
never executed: return "admin remote";
"admin remote";
never executed: return "admin remote";
0
421 }
never executed: end of block
else if (who == 0x101
who == 0x101Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
422 if (where
where == (1<<1)Description
TRUEnever evaluated
FALSEnever evaluated
== (1<<1)
where == (1<<1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
423 return
never executed: return "user local";
"user local";
never executed: return "user local";
0
424 else if (where
where == (1)Description
TRUEnever evaluated
FALSEnever evaluated
== (1)
where == (1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
425 return
never executed: return "user remote";
"user remote";
never executed: return "user remote";
0
426 }
never executed: end of block
0
427 fatal("Unknown forward permission list %d/%d", who, where);-
428}
never executed: end of block
0
429-
430-
431static struct permission_set *-
432permission_set_get(struct ssh *ssh, int where)-
433{-
434 struct ssh_channels *sc = ssh->chanctxt;-
435-
436 switch (where) {-
437 case
never executed: case (1<<1):
(1<<1):
never executed: case (1<<1):
0
438 return
never executed: return &sc->local_perms;
&sc->local_perms;
never executed: return &sc->local_perms;
0
439 break;
dead code: break;
-
440 case
never executed: case (1):
(1):
never executed: case (1):
0
441 return
never executed: return &sc->remote_perms;
&sc->remote_perms;
never executed: return &sc->remote_perms;
0
442 break;
dead code: break;
-
443 default
never executed: default:
:
never executed: default:
0
444 fatal("%s: invalid forwarding direction %d", __func__, where);-
445 }
never executed: end of block
0
446}-
447-
448-
449static void-
450permission_set_get_array(struct ssh *ssh, int who, int where,-
451 struct permission ***permpp, u_int **npermpp)-
452{-
453 struct permission_set *pset = permission_set_get(ssh, where);-
454-
455 switch (who) {-
456 case
never executed: case 0x101:
0x101:
never executed: case 0x101:
0
457 *permpp = &pset->permitted_user;-
458 *npermpp = &pset->num_permitted_user;-
459 break;
never executed: break;
0
460 case
never executed: case 0x100:
0x100:
never executed: case 0x100:
0
461 *permpp = &pset->permitted_admin;-
462 *npermpp = &pset->num_permitted_admin;-
463 break;
never executed: break;
0
464 default
never executed: default:
:
never executed: default:
0
465 fatal("%s: invalid forwarding client %d", __func__, who);-
466 }
never executed: end of block
0
467}-
468-
469-
470static int-
471permission_set_add(struct ssh *ssh, int who, int where,-
472 const char *host_to_connect, int port_to_connect,-
473 const char *listen_host, const char *listen_path, int listen_port,-
474 Channel *downstream)-
475{-
476 struct permission **permp;-
477 u_int n, *npermp;-
478-
479 permission_set_get_array(ssh, who, where, &permp, &npermp);-
480-
481 if (*
*npermp >= 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
npermp >= 0x7fffffff
*npermp >= 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
482 fatal("%s: %s overflow", __func__, fwd_ident(who, where));
never executed: fatal("%s: %s overflow", __func__, fwd_ident(who, where));
0
483-
484 *permp = xrecallocarray(*permp, *npermp, *npermp + 1, sizeof(**permp));-
485 n = (*npermp)++;-
486-
487 (*permp)[n].host_to_connect = ((
(host_to_conne... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
host_to_connect ==
(host_to_conne... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
488 ((void *)0)
(host_to_conne... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
489 )
(host_to_conne... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
?
0
490 ((void *)0) -
491 : xstrdup(host_to_connect));-
492 (*permp)[n].port_to_connect = port_to_connect;-
493 (*permp)[n].listen_host = ((
(listen_host == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
listen_host ==
(listen_host == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
494 ((void *)0)
(listen_host == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
495 )
(listen_host == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
?
0
496 ((void *)0) -
497 : xstrdup(listen_host));-
498 (*permp)[n].listen_path = ((
(listen_path == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
listen_path ==
(listen_path == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
499 ((void *)0)
(listen_path == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
500 )
(listen_path == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
?
0
501 ((void *)0) -
502 : xstrdup(listen_path));-
503 (*permp)[n].listen_port = listen_port;-
504 (*permp)[n].downstream = downstream;-
505-
506 return
never executed: return (int)n;
(int)n;
never executed: return (int)n;
0
507}-
508-
509static void-
510mux_remove_remote_forwardings(struct ssh *ssh, Channel *c)-
511{-
512 struct ssh_channels *sc = ssh->chanctxt;-
513 struct permission_set *pset = &sc->local_perms;-
514 struct permission *perm;-
515 int r;-
516 u_int i;-
517-
518 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
519 perm = &pset->permitted_user[i];-
520 if (perm->downstream != c
perm->downstream != cDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
521 continue;
never executed: continue;
0
522-
523-
524 debug("channel %d: cleanup remote forward for %s:%u",-
525 c->self, perm->listen_host, perm->listen_port);-
526 if ((
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 80)) != 0
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
527 (
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh,
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
528 "cancel-tcpip-forward")) != 0
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
529 (
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 0)) != 0
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
530 (
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh,
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
531 channel_rfwd_bind_host(perm->listen_host))) != 0
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
532 (
(r = sshpkt_pu...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, perm->listen_port)) != 0
(r = sshpkt_pu...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
533 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
534 fatal("%s: channel %i: %s", __func__,-
535 c->self, ssh_err(r));-
536 }
never executed: end of block
0
537 fwd_perm_clear(perm);-
538 }
never executed: end of block
0
539}
never executed: end of block
0
540-
541-
542void-
543channel_free(struct ssh *ssh, Channel *c)-
544{-
545 struct ssh_channels *sc = ssh->chanctxt;-
546 char *s;-
547 u_int i, n;-
548 Channel *other;-
549 struct channel_confirm *cc;-
550-
551 for (n = 0, i = 0; i < sc->channels_alloc
i < sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
552 if ((
(other = sc->c...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
other = sc->channels[i]) ==
(other = sc->c...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
553 ((void *)0)
(other = sc->c...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
554 )-
555 continue;
never executed: continue;
0
556 n++;-
557-
558 if (c->type == 16
c->type == 16Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
559 other->type == 20
other->type == 20Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
560 other->mux_ctx == c
other->mux_ctx == cDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
561 other->mux_ctx = -
562 ((void *)0)-
563 ;-
564 other->type = 4;-
565 other->istate = 3;-
566 other->ostate = 3;-
567 }
never executed: end of block
0
568 }
never executed: end of block
0
569 debug("channel %d: free: %s, nchannels %u", c->self,-
570 c->remote_name ? c->remote_name : "???", n);-
571-
572 if (c->type == 16
c->type == 16Description
TRUEnever evaluated
FALSEnever evaluated
)
0
573 mux_remove_remote_forwardings(ssh, c);
never executed: mux_remove_remote_forwardings(ssh, c);
0
574-
575 if (log_level_get() >= SYSLOG_LEVEL_DEBUG3
log_level_get(...G_LEVEL_DEBUG3Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
576 s = channel_open_message(ssh);-
577 debug3("channel %d: status: %s", c->self, s);-
578 free(s);-
579 }
never executed: end of block
0
580-
581 channel_close_fds(ssh, c);-
582 sshbuf_free(c->input);-
583 sshbuf_free(c->output);-
584 sshbuf_free(c->extended);-
585 c->input = c->output = c->extended = -
586 ((void *)0)-
587 ;-
588 free(c->remote_name);-
589 c->remote_name = -
590 ((void *)0)-
591 ;-
592 free(c->path);-
593 c->path = -
594 ((void *)0)-
595 ;-
596 free(c->listening_addr);-
597 c->listening_addr = -
598 ((void *)0)-
599 ;-
600 while ((
(cc = ((&c->st...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cc = ((&c->status_confirms)->tqh_first)) !=
(cc = ((&c->st...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
601 ((void *)0)
(cc = ((&c->st...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
602 ) {-
603 if (cc->abandon_cb !=
cc->abandon_cb != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
604 ((void *)0)
cc->abandon_cb != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
605 )-
606 cc->abandon_cb(ssh, c, cc->ctx);
never executed: cc->abandon_cb(ssh, c, cc->ctx);
0
607 do { if (((
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cc)->entry.tqe_next) !=
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
608 ((void *)0)
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
609 ) (
never executed: (cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
never executed: (cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
else (
never executed: (&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
never executed: (&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
*(cc)->entry.tqe_prev = (cc)->entry.tqe_next; ; ; } while (0);
0
610 explicit_bzero(cc, sizeof(*cc));-
611 free(cc);-
612 }
never executed: end of block
0
613 if (c->filter_cleanup !=
c->filter_clea...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
614 ((void *)0)
c->filter_clea...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
615 && c->filter_ctx !=
c->filter_ctx != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
616 ((void *)0)
c->filter_ctx != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
617 )-
618 c->filter_cleanup(ssh, c->self, c->filter_ctx);
never executed: c->filter_cleanup(ssh, c->self, c->filter_ctx);
0
619 sc->channels[c->self] = -
620 ((void *)0)-
621 ;-
622 explicit_bzero(c, sizeof(*c));-
623 free(c);-
624}
never executed: end of block
0
625-
626void-
627channel_free_all(struct ssh *ssh)-
628{-
629 u_int i;-
630-
631 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
632 if (ssh->chanctxt->channels[i] !=
ssh->chanctxt-...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
633 ((void *)0)
ssh->chanctxt-...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
634 )-
635 channel_free(ssh, ssh->chanctxt->channels[i]);
never executed: channel_free(ssh, ssh->chanctxt->channels[i]);
0
636}
never executed: end of block
0
637-
638-
639-
640-
641-
642void-
643channel_close_all(struct ssh *ssh)-
644{-
645 u_int i;-
646-
647 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
648 if (ssh->chanctxt->channels[i] !=
ssh->chanctxt-...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
649 ((void *)0)
ssh->chanctxt-...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
650 )-
651 channel_close_fds(ssh, ssh->chanctxt->channels[i]);
never executed: channel_close_fds(ssh, ssh->chanctxt->channels[i]);
0
652}
never executed: end of block
0
653-
654-
655-
656-
657void-
658channel_stop_listening(struct ssh *ssh)-
659{-
660 u_int i;-
661 Channel *c;-
662-
663 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
664 c = ssh->chanctxt->channels[i];-
665 if (c !=
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
666 ((void *)0)
c != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
667 ) {-
668 switch (c->type) {-
669 case
never executed: case 6:
6:
never executed: case 6:
0
670 case
never executed: case 2:
2:
never executed: case 2:
0
671 case
never executed: case 11:
11:
never executed: case 11:
0
672 case
never executed: case 1:
1:
never executed: case 1:
0
673 case
never executed: case 18:
18:
never executed: case 18:
0
674 case
never executed: case 19:
19:
never executed: case 19:
0
675 channel_close_fd(ssh, &c->sock);-
676 channel_free(ssh, c);-
677 break;
never executed: break;
0
678 }-
679 }
never executed: end of block
0
680 }
never executed: end of block
0
681}
never executed: end of block
0
682-
683-
684-
685-
686-
687int-
688channel_not_very_much_buffered_data(struct ssh *ssh)-
689{-
690 u_int i;-
691 u_int maxsize = ssh_packet_get_maxsize(ssh);-
692 Channel *c;-
693-
694 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
695 c = ssh->chanctxt->channels[i];-
696 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
697 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
698 || c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
699 continue;
never executed: continue;
0
700 if (sshbuf_len(c->output) > maxsize
sshbuf_len(c->...put) > maxsizeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
701 debug2("channel %d: big output buffer %zu > %u",-
702 c->self, sshbuf_len(c->output), maxsize);-
703 return
never executed: return 0;
0;
never executed: return 0;
0
704 }-
705 }
never executed: end of block
0
706 return
never executed: return 1;
1;
never executed: return 1;
0
707}-
708-
709-
710int-
711channel_still_open(struct ssh *ssh)-
712{-
713 u_int i;-
714 Channel *c;-
715-
716 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
717 c = ssh->chanctxt->channels[i];-
718 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
719 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
720 )-
721 continue;
never executed: continue;
0
722 switch (c->type) {-
723 case
never executed: case 1:
1:
never executed: case 1:
0
724 case
never executed: case 2:
2:
never executed: case 2:
0
725 case
never executed: case 11:
11:
never executed: case 11:
0
726 case
never executed: case 15:
15:
never executed: case 15:
0
727 case
never executed: case 5:
5:
never executed: case 5:
0
728 case
never executed: case 6:
6:
never executed: case 6:
0
729 case
never executed: case 13:
13:
never executed: case 13:
0
730 case
never executed: case 21:
21:
never executed: case 21:
0
731 case
never executed: case 12:
12:
never executed: case 12:
0
732 case
never executed: case 14:
14:
never executed: case 14:
0
733 case
never executed: case 17:
17:
never executed: case 17:
0
734 case
never executed: case 18:
18:
never executed: case 18:
0
735 case
never executed: case 19:
19:
never executed: case 19:
0
736 continue;
never executed: continue;
0
737 case
never executed: case 10:
10:
never executed: case 10:
0
738 continue;
never executed: continue;
0
739 case
never executed: case 3:
3:
never executed: case 3:
0
740 case
never executed: case 4:
4:
never executed: case 4:
0
741 case
never executed: case 22:
22:
never executed: case 22:
0
742 case
never executed: case 7:
7:
never executed: case 7:
0
743 case
never executed: case 16:
16:
never executed: case 16:
0
744 case
never executed: case 20:
20:
never executed: case 20:
0
745 return
never executed: return 1;
1;
never executed: return 1;
0
746 default
never executed: default:
:
never executed: default:
0
747 fatal("%s: bad channel type %d", __func__, c->type);-
748-
749 }
never executed: end of block
0
750 }-
751 return
never executed: return 0;
0;
never executed: return 0;
0
752}-
753-
754-
755int-
756channel_find_open(struct ssh *ssh)-
757{-
758 u_int i;-
759 Channel *c;-
760-
761 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
762 c = ssh->chanctxt->channels[i];-
763 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
764 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
765 || !c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
766 continue;
never executed: continue;
0
767 switch (c->type) {-
768 case
never executed: case 5:
5:
never executed: case 5:
0
769 case
never executed: case 13:
13:
never executed: case 13:
0
770 case
never executed: case 21:
21:
never executed: case 21:
0
771 case
never executed: case 22:
22:
never executed: case 22:
0
772 case
never executed: case 1:
1:
never executed: case 1:
0
773 case
never executed: case 2:
2:
never executed: case 2:
0
774 case
never executed: case 11:
11:
never executed: case 11:
0
775 case
never executed: case 15:
15:
never executed: case 15:
0
776 case
never executed: case 16:
16:
never executed: case 16:
0
777 case
never executed: case 20:
20:
never executed: case 20:
0
778 case
never executed: case 3:
3:
never executed: case 3:
0
779 case
never executed: case 12:
12:
never executed: case 12:
0
780 case
never executed: case 14:
14:
never executed: case 14:
0
781 case
never executed: case 17:
17:
never executed: case 17:
0
782 case
never executed: case 18:
18:
never executed: case 18:
0
783 case
never executed: case 19:
19:
never executed: case 19:
0
784 continue;
never executed: continue;
0
785 case
never executed: case 10:
10:
never executed: case 10:
0
786 case
never executed: case 6:
6:
never executed: case 6:
0
787 case
never executed: case 4:
4:
never executed: case 4:
0
788 case
never executed: case 7:
7:
never executed: case 7:
0
789 return
never executed: return i;
i;
never executed: return i;
0
790 default
never executed: default:
:
never executed: default:
0
791 fatal("%s: bad channel type %d", __func__, c->type);-
792-
793 }
never executed: end of block
0
794 }-
795 return
never executed: return -1;
-1;
never executed: return -1;
0
796}-
797-
798-
799-
800-
801-
802-
803char *-
804channel_open_message(struct ssh *ssh)-
805{-
806 struct sshbuf *buf;-
807 Channel *c;-
808 u_int i;-
809 int r;-
810 char *ret;-
811-
812 if ((
(buf = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
buf = sshbuf_new()) ==
(buf = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
813 ((void *)0)
(buf = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
814 )-
815 fatal("%s: sshbuf_new", __func__);
never executed: fatal("%s: sshbuf_new", __func__);
0
816 if ((
(r = sshbuf_pu...n:\r\n")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_putf(buf,
(r = sshbuf_pu...n:\r\n")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
817 "The following connections are open:\r\n")) != 0
(r = sshbuf_pu...n:\r\n")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
818 fatal("%s: sshbuf_putf: %s", __func__, ssh_err(r));
never executed: fatal("%s: sshbuf_putf: %s", __func__, ssh_err(r));
0
819 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
820 c = ssh->chanctxt->channels[i];-
821 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
822 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
823 )-
824 continue;
never executed: continue;
0
825 switch (c->type) {-
826 case
never executed: case 1:
1:
never executed: case 1:
0
827 case
never executed: case 2:
2:
never executed: case 2:
0
828 case
never executed: case 11:
11:
never executed: case 11:
0
829 case
never executed: case 5:
5:
never executed: case 5:
0
830 case
never executed: case 6:
6:
never executed: case 6:
0
831 case
never executed: case 14:
14:
never executed: case 14:
0
832 case
never executed: case 17:
17:
never executed: case 17:
0
833 case
never executed: case 15:
15:
never executed: case 15:
0
834 case
never executed: case 18:
18:
never executed: case 18:
0
835 case
never executed: case 19:
19:
never executed: case 19:
0
836 continue;
never executed: continue;
0
837 case
never executed: case 10:
10:
never executed: case 10:
0
838 case
never executed: case 3:
3:
never executed: case 3:
0
839 case
never executed: case 12:
12:
never executed: case 12:
0
840 case
never executed: case 13:
13:
never executed: case 13:
0
841 case
never executed: case 21:
21:
never executed: case 21:
0
842 case
never executed: case 22:
22:
never executed: case 22:
0
843 case
never executed: case 4:
4:
never executed: case 4:
0
844 case
never executed: case 7:
7:
never executed: case 7:
0
845 case
never executed: case 20:
20:
never executed: case 20:
0
846 case
never executed: case 16:
16:
never executed: case 16:
0
847 if ((
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_putf(buf, " #%d %.300s "
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
848 "(t%d %s%u i%u/%zu o%u/%zu fd %d/%d cc %d)\r\n",
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
849 c->self, c->remote_name,
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
850 c->type,
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
851 c->have_remote_id ? "r" : "nr", c->remote_id,
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
852 c->istate, sshbuf_len(c->input),
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
853 c->ostate, sshbuf_len(c->output),
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
854 c->rfd, c->wfd, c->ctl_chan)) != 0
(r = sshbuf_pu...tl_chan)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
855 fatal("%s: sshbuf_putf: %s",
never executed: fatal("%s: sshbuf_putf: %s", __func__, ssh_err(r));
0
856 __func__, ssh_err(r));
never executed: fatal("%s: sshbuf_putf: %s", __func__, ssh_err(r));
0
857 continue;
never executed: continue;
0
858 default
never executed: default:
:
never executed: default:
0
859 fatal("%s: bad channel type %d", __func__, c->type);-
860-
861 }
never executed: end of block
0
862 }-
863 if ((
(ret = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = sshbuf_dup_string(buf)) ==
(ret = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
864 ((void *)0)
(ret = sshbuf_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
865 )-
866 fatal("%s: sshbuf_dup_string", __func__);
never executed: fatal("%s: sshbuf_dup_string", __func__);
0
867 sshbuf_free(buf);-
868 return
never executed: return ret;
ret;
never executed: return ret;
0
869}-
870-
871static void-
872open_preamble(struct ssh *ssh, const char *where, Channel *c, const char *type)-
873{-
874 int r;-
875-
876 if ((
(r = sshpkt_st...ssh, 90)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 90)) != 0
(r = sshpkt_st...ssh, 90)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
877 (
(r = sshpkt_pu...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, type)) != 0
(r = sshpkt_pu...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
878 (
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->self)) != 0
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
879 (
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_window)) != 0
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
880 (
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
881 fatal("%s: channel %i: open: %s", where, c->self, ssh_err(r));-
882 }
never executed: end of block
0
883}
never executed: end of block
0
884-
885void-
886channel_send_open(struct ssh *ssh, int id)-
887{-
888 Channel *c = channel_lookup(ssh, id);-
889 int r;-
890-
891 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
892 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
893 ) {-
894 logit("channel_send_open: %d: bad id", id);-
895 return;
never executed: return;
0
896 }-
897 debug2("channel %d: send open", id);-
898 open_preamble(ssh, __func__, c, c->ctype);-
899 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
900 fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
901}
never executed: end of block
0
902-
903void-
904channel_request_start(struct ssh *ssh, int id, char *service, int wantconfirm)-
905{-
906 Channel *c = channel_lookup(ssh, id);-
907 int r;-
908-
909 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
910 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
911 ) {-
912 logit("%s: %d: unknown channel id", __func__, id);-
913 return;
never executed: return;
0
914 }-
915 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
916 fatal(":%s: channel %d: no remote id", __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
917-
918 debug2("channel %d: request %s confirm %d", id, service, wantconfirm);-
919 if ((
(r = sshpkt_st...ssh, 98)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 98)) != 0
(r = sshpkt_st...ssh, 98)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
920 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
921 (
(r = sshpkt_pu...service)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, service)) != 0
(r = sshpkt_pu...service)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
922 (
(r = sshpkt_pu...confirm)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, wantconfirm)) != 0
(r = sshpkt_pu...confirm)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
923 fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));-
924 }
never executed: end of block
0
925}
never executed: end of block
0
926-
927void-
928channel_register_status_confirm(struct ssh *ssh, int id,-
929 channel_confirm_cb *cb, channel_confirm_abandon_cb *abandon_cb, void *ctx)-
930{-
931 struct channel_confirm *cc;-
932 Channel *c;-
933-
934 if ((
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_lookup(ssh, id)) ==
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
935 ((void *)0)
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
936 )-
937 fatal("%s: %d: bad id", __func__, id);
never executed: fatal("%s: %d: bad id", __func__, id);
0
938-
939 cc = xcalloc(1, sizeof(*cc));-
940 cc->cb = cb;-
941 cc->abandon_cb = abandon_cb;-
942 cc->ctx = ctx;-
943 do { (cc)->entry.tqe_next = -
944((void *)0)-
945; (cc)->entry.tqe_prev = (&c->status_confirms)->tqh_last; *(&c->status_confirms)->tqh_last = (cc); (&c->status_confirms)->tqh_last = &(cc)->entry.tqe_next; } while (0);-
946}
never executed: end of block
0
947-
948void-
949channel_register_open_confirm(struct ssh *ssh, int id,-
950 channel_open_fn *fn, void *ctx)-
951{-
952 Channel *c = channel_lookup(ssh, id);-
953-
954 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
955 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
956 ) {-
957 logit("%s: %d: bad id", __func__, id);-
958 return;
never executed: return;
0
959 }-
960 c->open_confirm = fn;-
961 c->open_confirm_ctx = ctx;-
962}
never executed: end of block
0
963-
964void-
965channel_register_cleanup(struct ssh *ssh, int id,-
966 channel_callback_fn *fn, int do_close)-
967{-
968 Channel *c = channel_by_id(ssh, id);-
969-
970 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
971 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
972 ) {-
973 logit("%s: %d: bad id", __func__, id);-
974 return;
never executed: return;
0
975 }-
976 c->detach_user = fn;-
977 c->detach_close = do_close;-
978}
never executed: end of block
0
979-
980void-
981channel_cancel_cleanup(struct ssh *ssh, int id)-
982{-
983 Channel *c = channel_by_id(ssh, id);-
984-
985 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
986 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
987 ) {-
988 logit("%s: %d: bad id", __func__, id);-
989 return;
never executed: return;
0
990 }-
991 c->detach_user = -
992 ((void *)0)-
993 ;-
994 c->detach_close = 0;-
995}
never executed: end of block
0
996-
997void-
998channel_register_filter(struct ssh *ssh, int id, channel_infilter_fn *ifn,-
999 channel_outfilter_fn *ofn, channel_filter_cleanup_fn *cfn, void *ctx)-
1000{-
1001 Channel *c = channel_lookup(ssh, id);-
1002-
1003 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1004 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1005 ) {-
1006 logit("%s: %d: bad id", __func__, id);-
1007 return;
never executed: return;
0
1008 }-
1009 c->input_filter = ifn;-
1010 c->output_filter = ofn;-
1011 c->filter_ctx = ctx;-
1012 c->filter_cleanup = cfn;-
1013}
never executed: end of block
0
1014-
1015void-
1016channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd,-
1017 int extusage, int nonblock, int is_tty, u_int window_max)-
1018{-
1019 Channel *c = channel_lookup(ssh, id);-
1020 int r;-
1021-
1022 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1023 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1024 || c->type != 10
c->type != 10Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1025 fatal("channel_activate for non-larval channel %d.", id);
never executed: fatal("channel_activate for non-larval channel %d.", id);
0
1026 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1027 fatal(":%s: channel %d: no remote id", __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
1028-
1029 channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, is_tty);-
1030 c->type = 4;-
1031 c->local_window = c->local_window_max = window_max;-
1032-
1033 if ((
(r = sshpkt_st...ssh, 93)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 93)) != 0
(r = sshpkt_st...ssh, 93)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1034 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1035 (
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_window)) != 0
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1036 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1037 fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
1038}
never executed: end of block
0
1039-
1040static void-
1041channel_pre_listener(struct ssh *ssh, Channel *c,-
1042 fd_set *readset, fd_set *writeset)-
1043{-
1044 kludge_FD_SET(c->sock, readset);-
1045}
never executed: end of block
0
1046-
1047static void-
1048channel_pre_connecting(struct ssh *ssh, Channel *c,-
1049 fd_set *readset, fd_set *writeset)-
1050{-
1051 debug3("channel %d: waiting for connection", c->self);-
1052 kludge_FD_SET(c->sock, writeset);-
1053}
never executed: end of block
0
1054-
1055static void-
1056channel_pre_open(struct ssh *ssh, Channel *c,-
1057 fd_set *readset, fd_set *writeset)-
1058{-
1059 if (c->istate == 0
c->istate == 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1060 c->remote_window > 0
c->remote_window > 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1061 sshbuf_len(c->input) < c->remote_window
sshbuf_len(c->...>remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
1062 sshbuf_check_reserve(c->input, (16*1024)) == 0
sshbuf_check_r...16*1024)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1063 kludge_FD_SET(c->rfd, readset);
never executed: kludge_FD_SET(c->rfd, readset);
0
1064 if (c->ostate == 0
c->ostate == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1065 c->ostate == 1
c->ostate == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1066 if (sshbuf_len(c->output) > 0
sshbuf_len(c->output) > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1067 kludge_FD_SET(c->wfd, writeset);-
1068 }
never executed: end of block
else if (c->ostate == 1
c->ostate == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1069 if ((c->extended_usage == 2
c->extended_usage == 2Description
TRUEnever evaluated
FALSEnever evaluated
&& c->efd != -1
c->efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
&& (!(c->flags & (0x08|0x02))
!(c->flags & (0x08|0x02))Description
TRUEnever evaluated
FALSEnever evaluated
|| sshbuf_len(c->extended) > 0
sshbuf_len(c->extended) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
1070 debug2("channel %d: "
never executed: debug2("channel %d: " "obuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
1071 "obuf_empty delayed efd %d/(%zu)", c->self,
never executed: debug2("channel %d: " "obuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
1072 c->efd, sshbuf_len(c->extended));
never executed: debug2("channel %d: " "obuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
1073 else-
1074 chan_obuf_empty(ssh, c);
never executed: chan_obuf_empty(ssh, c);
0
1075 }-
1076 }
never executed: end of block
0
1077-
1078 if (c->efd != -1
c->efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
&& !(c->istate == 3
c->istate == 3Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1079 c->ostate == 3
c->ostate == 3Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
1080 if (c->extended_usage == 2
c->extended_usage == 2Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1081 sshbuf_len(c->extended) > 0
sshbuf_len(c->extended) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1082 kludge_FD_SET(c->efd, writeset);
never executed: kludge_FD_SET(c->efd, writeset);
0
1083 else if (c->efd != -1
c->efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
&& !(c->flags & 0x04)
!(c->flags & 0x04)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1084 (c->extended_usage == 1
c->extended_usage == 1Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1085 c->extended_usage == 0
c->extended_usage == 0Description
TRUEnever evaluated
FALSEnever evaluated
) &&
0
1086 sshbuf_len(c->extended) < c->remote_window
sshbuf_len(c->...>remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1087 kludge_FD_SET(c->efd, readset);
never executed: kludge_FD_SET(c->efd, readset);
0
1088 }
never executed: end of block
0
1089-
1090}
never executed: end of block
0
1091static int-
1092x11_open_helper(struct ssh *ssh, struct sshbuf *b)-
1093{-
1094 struct ssh_channels *sc = ssh->chanctxt;-
1095 u_char *ucp;-
1096 u_int proto_len, data_len;-
1097-
1098-
1099 if (sc->x11_refuse_time != 0
sc->x11_refuse_time != 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1100 (
(u_int)monotim...11_refuse_timeDescription
TRUEnever evaluated
FALSEnever evaluated
u_int)monotime() >= sc->x11_refuse_time
(u_int)monotim...11_refuse_timeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1101 verbose("Rejected X11 connection after ForwardX11Timeout "-
1102 "expired");-
1103 return
never executed: return -1;
-1;
never executed: return -1;
0
1104 }-
1105-
1106-
1107 if (sshbuf_len(b) < 12
sshbuf_len(b) < 12Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1108 return
never executed: return 0;
0;
never executed: return 0;
0
1109-
1110-
1111 ucp = sshbuf_mutable_ptr(b);-
1112 if (ucp[0] == 0x42
ucp[0] == 0x42Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1113 proto_len = 256 * ucp[6] + ucp[7];-
1114 data_len = 256 * ucp[8] + ucp[9];-
1115 }
never executed: end of block
else if (ucp[0] == 0x6c
ucp[0] == 0x6cDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1116 proto_len = ucp[6] + 256 * ucp[7];-
1117 data_len = ucp[8] + 256 * ucp[9];-
1118 }
never executed: end of block
else {
0
1119 debug2("Initial X11 packet contains bad byte order byte: 0x%x",-
1120 ucp[0]);-
1121 return
never executed: return -1;
-1;
never executed: return -1;
0
1122 }-
1123-
1124-
1125 if (sshbuf_len(b) <
sshbuf_len(b) ...len + 3) & ~3)Description
TRUEnever evaluated
FALSEnever evaluated
0
1126 12 + ((proto_len + 3) & ~3) + ((data_len + 3) & ~3)
sshbuf_len(b) ...len + 3) & ~3)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1127 return
never executed: return 0;
0;
never executed: return 0;
0
1128-
1129-
1130 if (proto_len != strlen(sc->x11_saved_proto)
proto_len != s...1_saved_proto)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1131 memcmp(ucp + 12, sc->x11_saved_proto, proto_len) != 0
memcmp(ucp + 1...roto_len) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1132 debug2("X11 connection uses different authentication protocol.");-
1133 return
never executed: return -1;
-1;
never executed: return -1;
0
1134 }-
1135-
1136 if (data_len != sc->x11_fake_data_len
data_len != sc..._fake_data_lenDescription
TRUEnever evaluated
FALSEnever evaluated
||
0
1137 timingsafe_bcmp(ucp + 12 + ((proto_len + 3) & ~3),
timingsafe_bcm...data_len) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1138 sc->x11_fake_data, sc->x11_fake_data_len) != 0
timingsafe_bcm...data_len) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1139 debug2("X11 auth data does not match fake data.");-
1140 return
never executed: return -1;
-1;
never executed: return -1;
0
1141 }-
1142-
1143 if (sc->x11_fake_data_len != sc->x11_saved_data_len
sc->x11_fake_d...saved_data_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1144 error("X11 fake_data_len %d != saved_data_len %d",-
1145 sc->x11_fake_data_len, sc->x11_saved_data_len);-
1146 return
never executed: return -1;
-1;
never executed: return -1;
0
1147 }-
1148-
1149-
1150-
1151-
1152-
1153 memcpy(ucp + 12 + ((proto_len + 3) & ~3),-
1154 sc->x11_saved_data, sc->x11_saved_data_len);-
1155 return
never executed: return 1;
1;
never executed: return 1;
0
1156}-
1157-
1158static void-
1159channel_pre_x11_open(struct ssh *ssh, Channel *c,-
1160 fd_set *readset, fd_set *writeset)-
1161{-
1162 int ret = x11_open_helper(ssh, c->output);-
1163-
1164-
1165-
1166 if (ret == 1
ret == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1167 c->type = 4;-
1168 channel_pre_open(ssh, c, readset, writeset);-
1169 }
never executed: end of block
else if (ret == -1
ret == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1170 logit("X11 connection rejected because of wrong authentication.");-
1171 debug2("X11 rejected %d i%d/o%d",-
1172 c->self, c->istate, c->ostate);-
1173 chan_read_failed(ssh, c);-
1174 sshbuf_reset(c->input);-
1175 chan_ibuf_empty(ssh, c);-
1176 sshbuf_reset(c->output);-
1177 chan_write_failed(ssh, c);-
1178 debug2("X11 closed %d i%d/o%d", c->self, c->istate, c->ostate);-
1179 }
never executed: end of block
0
1180}
never executed: end of block
0
1181-
1182static void-
1183channel_pre_mux_client(struct ssh *ssh,-
1184 Channel *c, fd_set *readset, fd_set *writeset)-
1185{-
1186 if (c->istate == 0
c->istate == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& !c->mux_pause
!c->mux_pauseDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
1187 sshbuf_check_reserve(c->input, (16*1024)) == 0
sshbuf_check_r...16*1024)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1188 kludge_FD_SET(c->rfd, readset);
never executed: kludge_FD_SET(c->rfd, readset);
0
1189 if (c->istate == 1
c->istate == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1190-
1191 sshbuf_reset(c->input);-
1192 chan_ibuf_empty(ssh, c);-
1193-
1194 chan_rcvd_oclose(ssh, c);-
1195 }
never executed: end of block
0
1196 if (c->ostate == 0
c->ostate == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1197 c->ostate == 1
c->ostate == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1198 if (sshbuf_len(c->output) > 0
sshbuf_len(c->output) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1199 kludge_FD_SET(c->wfd, writeset);
never executed: kludge_FD_SET(c->wfd, writeset);
0
1200 else if (c->ostate == 1
c->ostate == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1201 chan_obuf_empty(ssh, c);
never executed: chan_obuf_empty(ssh, c);
0
1202 }
never executed: end of block
0
1203}
never executed: end of block
0
1204-
1205-
1206static int-
1207channel_decode_socks4(Channel *c, struct sshbuf *input, struct sshbuf *output)-
1208{-
1209 const u_char *p;-
1210 char *host;-
1211 u_int len, have, i, found, need;-
1212 char username[256];-
1213 struct {-
1214 u_int8_t version;-
1215 u_int8_t command;-
1216 u_int16_t dest_port;-
1217 struct in_addr dest_addr;-
1218 } s4_req, s4_rsp;-
1219 int r;-
1220-
1221 debug2("channel %d: decode socks4", c->self);-
1222-
1223 have = sshbuf_len(input);-
1224 len = sizeof(s4_req);-
1225 if (have < len
have < lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1226 return
never executed: return 0;
0;
never executed: return 0;
0
1227 p = sshbuf_ptr(input);-
1228-
1229 need = 1;-
1230-
1231 if (p[4] == 0
p[4] == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& p[5] == 0
p[5] == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& p[6] == 0
p[6] == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& p[7] != 0
p[7] != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1232 debug2("channel %d: socks4a request", c->self);-
1233-
1234 need = 2;-
1235 }
never executed: end of block
0
1236-
1237 for (found = 0, i = len; i < have
i < haveDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1238 if (p[i] == '\0'
p[i] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1239 found++;-
1240 if (found == need
found == needDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1241 break;
never executed: break;
0
1242 }
never executed: end of block
0
1243 if (i > 1024
i > 1024Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1244-
1245 debug("channel %d: decode socks4: too long",-
1246 c->self);-
1247 return
never executed: return -1;
-1;
never executed: return -1;
0
1248 }-
1249 }
never executed: end of block
0
1250 if (found < need
found < needDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1251 return
never executed: return 0;
0;
never executed: return 0;
0
1252 if ((
(r = sshbuf_ge...sion, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &s4_req.version, 1)) != 0
(r = sshbuf_ge...sion, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1253 (
(r = sshbuf_ge...mand, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &s4_req.command, 1)) != 0
(r = sshbuf_ge...mand, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1254 (
(r = sshbuf_ge...port, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &s4_req.dest_port, 2)) != 0
(r = sshbuf_ge...port, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1255 (
(r = sshbuf_ge...addr, 4)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &s4_req.dest_addr, 4)) != 0
(r = sshbuf_ge...addr, 4)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1256 debug("channels %d: decode socks4: %s", c->self, ssh_err(r));-
1257 return
never executed: return -1;
-1;
never executed: return -1;
0
1258 }-
1259 have = sshbuf_len(input);-
1260 p = sshbuf_ptr(input);-
1261 if (memchr(p, '\0', have) ==
memchr(p, '\0'...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1262 ((void *)0)
memchr(p, '\0'...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1263 ) {-
1264 error("channel %d: decode socks4: user not nul terminated",-
1265 c->self);-
1266 return
never executed: return -1;
-1;
never executed: return -1;
0
1267 }-
1268 len = strlen(p);-
1269 debug2("channel %d: decode socks4: user %s/%d", c->self, p, len);-
1270 len++;-
1271 strlcpy(username, p, sizeof(username));-
1272 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(input, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1273 fatal("%s: channel %d: consume: %s", __func__,-
1274 c->self, ssh_err(r));-
1275 }
never executed: end of block
0
1276 free(c->path);-
1277 c->path = -
1278 ((void *)0)-
1279 ;-
1280 if (need == 1
need == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1281 host = inet_ntoa(s4_req.dest_addr);-
1282 c->path = xstrdup(host);-
1283 }
never executed: end of block
else {
0
1284 have = sshbuf_len(input);-
1285 p = sshbuf_ptr(input);-
1286 if (memchr(p, '\0', have) ==
memchr(p, '\0'...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1287 ((void *)0)
memchr(p, '\0'...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1288 ) {-
1289 error("channel %d: decode socks4a: host not nul "-
1290 "terminated", c->self);-
1291 return
never executed: return -1;
-1;
never executed: return -1;
0
1292 }-
1293 len = strlen(p);-
1294 debug2("channel %d: decode socks4a: host %s/%d",-
1295 c->self, p, len);-
1296 len++;-
1297 if (len >
len > 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
1298 1025
len > 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
1299 ) {-
1300 error("channel %d: hostname \"%.100s\" too long",-
1301 c->self, p);-
1302 return
never executed: return -1;
-1;
never executed: return -1;
0
1303 }-
1304 c->path = xstrdup(p);-
1305 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(input, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1306 fatal("%s: channel %d: consume: %s", __func__,-
1307 c->self, ssh_err(r));-
1308 }
never executed: end of block
0
1309 }
never executed: end of block
0
1310 c->host_port = -
1311 (__extension__ ({ unsigned short int __v, __x = (unsigned short int) (-
1312 s4_req.dest_port-
1313 ); if (__builtin_constant_p (__x)
__builtin_constant_p (__x)Description
TRUEnever evaluated
FALSEnever evaluated
) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
never executed: __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
else __asm__
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
__v; }))
0
1314 ;-
1315-
1316 debug2("channel %d: dynamic request: socks4 host %s port %u command %u",-
1317 c->self, c->path, c->host_port, s4_req.command);-
1318-
1319 if (s4_req.command != 1
s4_req.command != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1320 debug("channel %d: cannot handle: %s cn %d",-
1321 c->self, need == 1 ? "SOCKS4" : "SOCKS4A", s4_req.command);-
1322 return
never executed: return -1;
-1;
never executed: return -1;
0
1323 }-
1324 s4_rsp.version = 0;-
1325 s4_rsp.command = 90;-
1326 s4_rsp.dest_port = 0;-
1327 s4_rsp.dest_addr.s_addr = -
1328 ((in_addr_t) 0x00000000)-
1329 ;-
1330 if ((
(r = sshbuf_pu...s4_rsp))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(output, &s4_rsp, sizeof(s4_rsp))) != 0
(r = sshbuf_pu...s4_rsp))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1331 fatal("%s: channel %d: append reply: %s", __func__,-
1332 c->self, ssh_err(r));-
1333 }
never executed: end of block
0
1334 return
never executed: return 1;
1;
never executed: return 1;
0
1335}-
1336static int-
1337channel_decode_socks5(Channel *c, struct sshbuf *input, struct sshbuf *output)-
1338{-
1339-
1340 struct {-
1341 u_int8_t version;-
1342 u_int8_t command;-
1343 u_int8_t reserved;-
1344 u_int8_t atyp;-
1345 } s5_req, s5_rsp;-
1346 u_int16_t dest_port;-
1347 char dest_addr[255+1], ntop[-
1348 46-
1349 ];-
1350 const u_char *p;-
1351 u_int have, need, i, found, nmethods, addrlen, af;-
1352 int r;-
1353-
1354 debug2("channel %d: decode socks5", c->self);-
1355 p = sshbuf_ptr(input);-
1356 if (p[0] != 0x05
p[0] != 0x05Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1357 return
never executed: return -1;
-1;
never executed: return -1;
0
1358 have = sshbuf_len(input);-
1359 if (!(c->flags & 0x1000)
!(c->flags & 0x1000)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1360-
1361 if (have < 2
have < 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1362 return
never executed: return 0;
0;
never executed: return 0;
0
1363 nmethods = p[1];-
1364 if (have < nmethods + 2
have < nmethods + 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1365 return
never executed: return 0;
0;
never executed: return 0;
0
1366-
1367 for (found = 0, i = 2; i < nmethods + 2
i < nmethods + 2Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1368 if (p[i] == 0x00
p[i] == 0x00Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1369 found = 1;-
1370 break;
never executed: break;
0
1371 }-
1372 }
never executed: end of block
0
1373 if (!found
!foundDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1374 debug("channel %d: method SSH_SOCKS5_NOAUTH not found",-
1375 c->self);-
1376 return
never executed: return -1;
-1;
never executed: return -1;
0
1377 }-
1378 if ((
(r = sshbuf_co...ods + 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(input, nmethods + 2)) != 0
(r = sshbuf_co...ods + 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1379 fatal("%s: channel %d: consume: %s", __func__,-
1380 c->self, ssh_err(r));-
1381 }
never executed: end of block
0
1382-
1383 if ((
(r = sshbuf_pu...t, 0x05)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u8(output, 0x05)) != 0
(r = sshbuf_pu...t, 0x05)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1384 (
(r = sshbuf_pu...t, 0x00)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u8(output, 0x00)) != 0
(r = sshbuf_pu...t, 0x00)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1385 fatal("%s: channel %d: append reply: %s", __func__,-
1386 c->self, ssh_err(r));-
1387 }
never executed: end of block
0
1388 c->flags |= 0x1000;-
1389 debug2("channel %d: socks5 auth done", c->self);-
1390 return
never executed: return 0;
0;
never executed: return 0;
0
1391 }-
1392 debug2("channel %d: socks5 post auth", c->self);-
1393 if (have < sizeof(s5_req)+1
have < sizeof(s5_req)+1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1394 return
never executed: return 0;
0;
never executed: return 0;
0
1395 memcpy(&s5_req, p, sizeof(s5_req));-
1396 if (s5_req.version != 0x05
s5_req.version != 0x05Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1397 s5_req.command != 0x01
s5_req.command != 0x01Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1398 s5_req.reserved != 0x00
s5_req.reserved != 0x00Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1399 debug2("channel %d: only socks5 connect supported", c->self);-
1400 return
never executed: return -1;
-1;
never executed: return -1;
0
1401 }-
1402 switch (s5_req.atyp){-
1403 case
never executed: case 0x01:
0x01:
never executed: case 0x01:
0
1404 addrlen = 4;-
1405 af = -
1406 2-
1407 ;-
1408 break;
never executed: break;
0
1409 case
never executed: case 0x03:
0x03:
never executed: case 0x03:
0
1410 addrlen = p[sizeof(s5_req)];-
1411 af = -1;-
1412 break;
never executed: break;
0
1413 case
never executed: case 0x04:
0x04:
never executed: case 0x04:
0
1414 addrlen = 16;-
1415 af = -
1416 10-
1417 ;-
1418 break;
never executed: break;
0
1419 default
never executed: default:
:
never executed: default:
0
1420 debug2("channel %d: bad socks5 atyp %d", c->self, s5_req.atyp);-
1421 return
never executed: return -1;
-1;
never executed: return -1;
0
1422 }-
1423 need = sizeof(s5_req) + addrlen + 2;-
1424 if (s5_req.atyp == 0x03
s5_req.atyp == 0x03Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1425 need++;
never executed: need++;
0
1426 if (have < need
have < needDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1427 return
never executed: return 0;
0;
never executed: return 0;
0
1428 if ((
(r = sshbuf_co...s5_req))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(input, sizeof(s5_req))) != 0
(r = sshbuf_co...s5_req))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1429 fatal("%s: channel %d: consume: %s", __func__,-
1430 c->self, ssh_err(r));-
1431 }
never executed: end of block
0
1432 if (s5_req.atyp == 0x03
s5_req.atyp == 0x03Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1433-
1434 if ((
(r = sshbuf_co...nput, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(input, 1)) != 0
(r = sshbuf_co...nput, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1435 fatal("%s: channel %d: consume: %s", __func__,-
1436 c->self, ssh_err(r));-
1437 }
never executed: end of block
0
1438 }
never executed: end of block
0
1439 if ((
(r = sshbuf_ge...addrlen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &dest_addr, addrlen)) != 0
(r = sshbuf_ge...addrlen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1440 (
(r = sshbuf_ge...port, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get(input, &dest_port, 2)) != 0
(r = sshbuf_ge...port, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1441 debug("channel %d: parse addr/port: %s", c->self, ssh_err(r));-
1442 return
never executed: return -1;
-1;
never executed: return -1;
0
1443 }-
1444 dest_addr[addrlen] = '\0';-
1445 free(c->path);-
1446 c->path = -
1447 ((void *)0)-
1448 ;-
1449 if (s5_req.atyp == 0x03
s5_req.atyp == 0x03Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1450 if (addrlen >=
addrlen >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
1451 1025
addrlen >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
1452 ) {-
1453 error("channel %d: dynamic request: socks5 hostname "-
1454 "\"%.100s\" too long", c->self, dest_addr);-
1455 return
never executed: return -1;
-1;
never executed: return -1;
0
1456 }-
1457 c->path = xstrdup(dest_addr);-
1458 }
never executed: end of block
else {
0
1459 if (inet_ntop(af, dest_addr, ntop, sizeof(ntop)) ==
inet_ntop(af, ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1460 ((void *)0)
inet_ntop(af, ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1461 )-
1462 return
never executed: return -1;
-1;
never executed: return -1;
0
1463 c->path = xstrdup(ntop);-
1464 }
never executed: end of block
0
1465 c->host_port = -
1466 (__extension__ ({ unsigned short int __v, __x = (unsigned short int) (-
1467 dest_port-
1468 ); if (__builtin_constant_p (__x)
__builtin_constant_p (__x)Description
TRUEnever evaluated
FALSEnever evaluated
) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
never executed: __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
else __asm__
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
__v; }))
0
1469 ;-
1470-
1471 debug2("channel %d: dynamic request: socks5 host %s port %u command %u",-
1472 c->self, c->path, c->host_port, s5_req.command);-
1473-
1474 s5_rsp.version = 0x05;-
1475 s5_rsp.command = 0x00;-
1476 s5_rsp.reserved = 0;-
1477 s5_rsp.atyp = 0x01;-
1478 dest_port = 0;-
1479-
1480 if ((
(r = sshbuf_pu...s5_rsp))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(output, &s5_rsp, sizeof(s5_rsp))) != 0
(r = sshbuf_pu...s5_rsp))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1481 (
(r = sshbuf_pu...0000)) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u32(output,
(r = sshbuf_pu...0000)) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1482 __bswap_32 (((in_addr_t) 0x00000000))
(r = sshbuf_pu...0000)) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1483 )) != 0
(r = sshbuf_pu...0000)) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1484 (
(r = sshbuf_pu...t_port))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(output, &dest_port, sizeof(dest_port))) != 0
(r = sshbuf_pu...t_port))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1485 fatal("%s: channel %d: append reply: %s", __func__,
never executed: fatal("%s: channel %d: append reply: %s", __func__, c->self, ssh_err(r));
0
1486 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: append reply: %s", __func__, c->self, ssh_err(r));
0
1487 return
never executed: return 1;
1;
never executed: return 1;
0
1488}-
1489-
1490Channel *-
1491channel_connect_stdio_fwd(struct ssh *ssh,-
1492 const char *host_to_connect, u_short port_to_connect, int in, int out)-
1493{-
1494 Channel *c;-
1495-
1496 debug("%s %s:%d", __func__, host_to_connect, port_to_connect);-
1497-
1498 c = channel_new(ssh, "stdio-forward", 3, in, out,-
1499 -1, (64*(32*1024)), (32*1024),-
1500 0, "stdio-forward", 0);-
1501-
1502 c->path = xstrdup(host_to_connect);-
1503 c->host_port = port_to_connect;-
1504 c->listening_port = 0;-
1505 c->force_drain = 1;-
1506-
1507 channel_register_fds(ssh, c, in, out, -1, 0, 1, 0);-
1508 port_open_helper(ssh, c, "direct-tcpip");-
1509-
1510 return
never executed: return c;
c;
never executed: return c;
0
1511}-
1512-
1513-
1514static void-
1515channel_pre_dynamic(struct ssh *ssh, Channel *c,-
1516 fd_set *readset, fd_set *writeset)-
1517{-
1518 const u_char *p;-
1519 u_int have;-
1520 int ret;-
1521-
1522 have = sshbuf_len(c->input);-
1523 debug2("channel %d: pre_dynamic: have %d", c->self, have);-
1524-
1525-
1526 if (have < 3
have < 3Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1527-
1528 kludge_FD_SET(c->sock, readset);-
1529 return;
never executed: return;
0
1530 }-
1531-
1532 p = sshbuf_ptr(c->input);-
1533-
1534 switch (p[0]) {-
1535 case
never executed: case 0x04:
0x04:
never executed: case 0x04:
0
1536 ret = channel_decode_socks4(c, c->input, c->output);-
1537 break;
never executed: break;
0
1538 case
never executed: case 0x05:
0x05:
never executed: case 0x05:
0
1539 ret = channel_decode_socks5(c, c->input, c->output);-
1540 break;
never executed: break;
0
1541 default
never executed: default:
:
never executed: default:
0
1542 ret = -1;-
1543 break;
never executed: break;
0
1544 }-
1545 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1546 chan_mark_dead(ssh, c);-
1547 }
never executed: end of block
else if (ret == 0
ret == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1548 debug2("channel %d: pre_dynamic: need more", c->self);-
1549-
1550 kludge_FD_SET(c->sock, readset);-
1551 if (sshbuf_len(c->output)
sshbuf_len(c->output)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1552 kludge_FD_SET(c->sock, writeset);
never executed: kludge_FD_SET(c->sock, writeset);
0
1553 }
never executed: end of block
else {
0
1554-
1555 c->type = 3;-
1556 port_open_helper(ssh, c, "direct-tcpip");-
1557 }
never executed: end of block
0
1558}-
1559-
1560-
1561static void-
1562rdynamic_close(struct ssh *ssh, Channel *c)-
1563{-
1564 c->type = 4;-
1565 chan_read_failed(ssh, c);-
1566 sshbuf_reset(c->input);-
1567 chan_ibuf_empty(ssh, c);-
1568 sshbuf_reset(c->output);-
1569 chan_write_failed(ssh, c);-
1570}
never executed: end of block
0
1571-
1572-
1573static void-
1574channel_before_prepare_select_rdynamic(struct ssh *ssh, Channel *c)-
1575{-
1576 const u_char *p;-
1577 u_int have, len;-
1578 int r, ret;-
1579-
1580 have = sshbuf_len(c->output);-
1581 debug2("channel %d: pre_rdynamic: have %d", c->self, have);-
1582-
1583-
1584 if (c->flags & 0x08
c->flags & 0x08Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1585 if ((
(r = sshbuf_co...t, have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->output, have)) != 0
(r = sshbuf_co...t, have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1586 fatal("%s: channel %d: consume: %s",-
1587 __func__, c->self, ssh_err(r));-
1588 }
never executed: end of block
0
1589 rdynamic_close(ssh, c);-
1590 return;
never executed: return;
0
1591 }-
1592-
1593 if (have < 3
have < 3Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1594 return;
never executed: return;
0
1595-
1596 p = sshbuf_ptr(c->output);-
1597 switch (p[0]) {-
1598 case
never executed: case 0x04:
0x04:
never executed: case 0x04:
0
1599-
1600 ret = channel_decode_socks4(c, c->output, c->input);-
1601 break;
never executed: break;
0
1602 case
never executed: case 0x05:
0x05:
never executed: case 0x05:
0
1603 ret = channel_decode_socks5(c, c->output, c->input);-
1604 break;
never executed: break;
0
1605 default
never executed: default:
:
never executed: default:
0
1606 ret = -1;-
1607 break;
never executed: break;
0
1608 }-
1609 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1610 rdynamic_close(ssh, c);-
1611 }
never executed: end of block
else if (ret == 0
ret == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1612 debug2("channel %d: pre_rdynamic: need more", c->self);-
1613-
1614 len = sshbuf_len(c->input);-
1615 if (len > 0
len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& len < c->remote_window
len < c->remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1616 if ((
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 94)) != 0
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1617 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1618 (
(r = sshpkt_pu...->input)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_stringb(ssh, c->input)) != 0
(r = sshpkt_pu...->input)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1619 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1620 fatal("%s: channel %i: rdynamic: %s", __func__,-
1621 c->self, ssh_err(r));-
1622 }
never executed: end of block
0
1623 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->input, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1624 fatal("%s: channel %d: consume: %s",-
1625 __func__, c->self, ssh_err(r));-
1626 }
never executed: end of block
0
1627 c->remote_window -= len;-
1628 }
never executed: end of block
0
1629 }
never executed: end of block
else if (rdynamic_connect_finish(ssh, c) < 0
rdynamic_conne...sh(ssh, c) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1630-
1631 rdynamic_close(ssh, c);-
1632 }
never executed: end of block
0
1633}
never executed: end of block
0
1634-
1635-
1636static void-
1637channel_post_x11_listener(struct ssh *ssh, Channel *c,-
1638 fd_set *readset, fd_set *writeset)-
1639{-
1640 Channel *nc;-
1641 struct sockaddr_storage addr;-
1642 int r, newsock, oerrno, remote_port;-
1643 socklen_t addrlen;-
1644 char buf[16384], *remote_ipaddr;-
1645-
1646 if (!kludge_FD_ISSET(c->sock, readset)
!kludge_FD_ISS...sock, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1647 return;
never executed: return;
0
1648-
1649 debug("X11 connection requested.");-
1650 addrlen = sizeof(addr);-
1651 newsock = accept(c->sock, (struct sockaddr *)&addr, &addrlen);-
1652 if (c->single_connection
c->single_connectionDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1653 oerrno = -
1654 (*__errno_location ())-
1655 ;-
1656 debug2("single_connection: closing X11 listener.");-
1657 channel_close_fd(ssh, &c->sock);-
1658 chan_mark_dead(ssh, c);-
1659 -
1660 (*__errno_location ()) -
1661 = oerrno;-
1662 }
never executed: end of block
0
1663 if (newsock < 0
newsock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1664 if (-
1665 (*
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
1666 !=
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
1667 4
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
1668 && -
1669 (*
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
1670 !=
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
1671 11
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
1672 &&-
1673 -
1674 (*
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
1675 !=
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
1676 103
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
1677 )-
1678 error("accept: %.100s", strerror(
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
1679 (*__errno_location ())
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
1680 ));
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
1681 if (-
1682 (*
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
1683 ==
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
1684 24
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
1685 || -
1686 (*
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
1687 ==
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
1688 23
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
1689 )-
1690 c->notbefore = monotime() + 1;
never executed: c->notbefore = monotime() + 1;
0
1691 return;
never executed: return;
0
1692 }-
1693 set_nodelay(newsock);-
1694 remote_ipaddr = get_peer_ipaddr(newsock);-
1695 remote_port = get_peer_port(newsock);-
1696 snprintf(buf, sizeof buf, "X11 connection from %.200s port %d",-
1697 remote_ipaddr, remote_port);-
1698-
1699 nc = channel_new(ssh, "accepted x11 socket",-
1700 3, newsock, newsock, -1,-
1701 c->local_window_max, c->local_maxpacket, 0, buf, 1);-
1702 open_preamble(ssh, __func__, nc, "x11");-
1703 if ((
(r = sshpkt_pu..._ipaddr)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, remote_ipaddr)) != 0
(r = sshpkt_pu..._ipaddr)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1704 (
(r = sshpkt_pu...te_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, remote_port)) != 0
(r = sshpkt_pu...te_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1705 fatal("%s: channel %i: reply %s", __func__,-
1706 c->self, ssh_err(r));-
1707 }
never executed: end of block
0
1708 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1709 fatal("%s: channel %i: send %s", __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %i: send %s", __func__, c->self, ssh_err(r));
0
1710 free(remote_ipaddr);-
1711}
never executed: end of block
0
1712-
1713static void-
1714port_open_helper(struct ssh *ssh, Channel *c, char *rtype)-
1715{-
1716 char *local_ipaddr = get_local_ipaddr(c->sock);-
1717 int local_port = c->sock == -1
c->sock == -1Description
TRUEnever evaluated
FALSEnever evaluated
? 65536 : get_local_port(c->sock);
0
1718 char *remote_ipaddr = get_peer_ipaddr(c->sock);-
1719 int remote_port = get_peer_port(c->sock);-
1720 int r;-
1721-
1722 if (remote_port == -1
remote_port == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1723-
1724 free(remote_ipaddr);-
1725 remote_ipaddr = xstrdup("127.0.0.1");-
1726 remote_port = 65535;-
1727 }
never executed: end of block
0
1728-
1729 free(c->remote_name);-
1730 xasprintf(&c->remote_name,-
1731 "%s: listening port %d for %.100s port %d, "-
1732 "connect from %.200s port %d to %.100s port %d",-
1733 rtype, c->listening_port, c->path, c->host_port,-
1734 remote_ipaddr, remote_port, local_ipaddr, local_port);-
1735-
1736 open_preamble(ssh, __func__, c, rtype);-
1737 if (-
1738 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1739 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1740 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1741 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1742 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1743 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1744 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1745 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1746 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1747 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1748 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1749 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1750 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1751 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1752 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1753 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1754 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1755 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1756 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1757 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1758 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1759 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1760 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1761 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1762 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1763 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1764 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1765 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1766 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1767 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1768 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1769 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1770 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1771 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1772 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1773 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1774 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1775 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1776 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1777 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1778 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1779 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1780 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1781 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1782 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1783 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1784 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1785 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1786 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1787 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1788 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1789 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1790 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1791 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1792 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1793 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1794 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1795 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1796 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1797 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1798 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1799 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1800 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1801 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1802 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1803 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1804 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1805 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1806 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1807 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1808 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1809 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1810 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1811 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1812 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "direct-tcpip" ))[3] - __s2[3]);
0
1813 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "direct-tcpip" ))[3] - __s2[3]);
0
1814 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1815 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1816 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1817 "direct-tcpip"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1818 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1819 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1820-
1821 if ((
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, c->path)) != 0
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1822 (
(r = sshpkt_pu...st_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->host_port)) != 0
(r = sshpkt_pu...st_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1823 fatal("%s: channel %i: reply %s", __func__,-
1824 c->self, ssh_err(r));-
1825 }
never executed: end of block
0
1826 }
never executed: end of block
else if (
0
1827 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1828 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1829 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1830 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1831 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1832 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1833 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1834 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1835 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1836 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1837 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1838 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1839 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1840 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1841 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1842 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1843 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1844 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1845 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1846 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1847 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1848 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1849 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1850 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1851 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1852 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1853 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1854 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1855 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1856 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1857 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1858 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1859 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1860 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1861 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1862 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1863 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1864 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1865 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1866 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1867 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1868 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1869 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1870 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1871 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1872 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1873 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1874 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1875 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1876 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1877 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1878 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1879 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1880 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1881 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1882 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1883 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1884 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1885 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1886 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1887 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1888 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1889 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1890 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1891 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1892 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1893 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1894 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1895 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1896 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1897 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1898 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1899 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1900 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1901 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "direct-streamlocal@openssh.com" ))[3] - __s2[3]);
0
1902 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "direct-streamlocal@openssh.com" ))[3] - __s2[3]);
0
1903 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1904 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1905 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1906 "direct-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1907 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1908 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1909-
1910 if ((
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, c->path)) != 0
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1911 fatal("%s: channel %i: reply %s", __func__,-
1912 c->self, ssh_err(r));-
1913 }
never executed: end of block
0
1914 }
never executed: end of block
else if (
0
1915 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1916 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1917 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1918 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1919 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1920 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1921 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1922 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1923 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1924 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1925 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1926 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1927 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1928 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1929 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1930 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1931 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1932 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1933 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1934 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1935 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1936 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1937 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1938 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1939 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1940 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1941 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1942 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1943 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1944 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1945 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1946 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1947 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1948 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1949 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1950 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1951 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1952 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1953 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1954 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1955 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1956 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1957 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1958 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1959 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1960 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1961 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1962 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
1963 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1964 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1965 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1966 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1967 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1968 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1969 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1970 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1971 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1972 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1973 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1974 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1975 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1976 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1977 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1978 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1979 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1980 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1981 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1982 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1983 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1984 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1985 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1986 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1987 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1988 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1989 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "forwarded-streamlocal@openssh.com" ))[3] - __s2[3]);
0
1990 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "forwarded-streamlocal@openssh.com" ))[3] - __s2[3]);
0
1991 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1992 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1993 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1994 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1995 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1996 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1997-
1998 if ((
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, c->path)) != 0
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1999 fatal("%s: channel %i: reply %s", __func__,-
2000 c->self, ssh_err(r));-
2001 }
never executed: end of block
0
2002 }
never executed: end of block
else {
0
2003-
2004 if ((
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, c->path)) != 0
(r = sshpkt_pu...c->path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2005 (
(r = sshpkt_pu...al_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, local_port)) != 0
(r = sshpkt_pu...al_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2006 fatal("%s: channel %i: reply %s", __func__,-
2007 c->self, ssh_err(r));-
2008 }
never executed: end of block
0
2009 }
never executed: end of block
0
2010 if (-
2011 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2012 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2013 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2014 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2015 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2016 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2017 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2018 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2019 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2020 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2021 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2022 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2023 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2024 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2025 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2026 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2027 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2028 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2029 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2030 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2031 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2032 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2033 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2034 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2035 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2036 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2037 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2038 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2039 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2040 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2041 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2042 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2043 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2044 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2045 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2046 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2047 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2048 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2049 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2050 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2051 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2052 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2053 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2054 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2055 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2056 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2057 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
2058 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( rtype ))[3] - __s2[3]);
0
2059 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2060 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2061 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2062 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2063 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2064 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2065 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2066 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2067 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2068 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2069 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2070 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2071 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2072 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2073 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2074 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2075 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2076 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2077 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2078 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2079 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2080 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2081 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2082 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2083 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2084 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2085 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "forwarded-streamlocal@openssh.com" ))[3] - __s2[3]);
0
2086 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "forwarded-streamlocal@openssh.com" ))[3] - __s2[3]);
0
2087 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2088 rtype
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2089 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2090 "forwarded-streamlocal@openssh.com"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2091 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2092 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2093-
2094 if ((
(r = sshpkt_pu...ssh, "")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, "")) != 0
(r = sshpkt_pu...ssh, "")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2095 fatal("%s: channel %i: reply %s", __func__,-
2096 c->self, ssh_err(r));-
2097 }
never executed: end of block
0
2098 }
never executed: end of block
else {
0
2099-
2100 if ((
(r = sshpkt_pu..._ipaddr)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, remote_ipaddr)) != 0
(r = sshpkt_pu..._ipaddr)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2101 (
(r = sshpkt_pu...te_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, (u_int)remote_port)) != 0
(r = sshpkt_pu...te_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2102 fatal("%s: channel %i: reply %s", __func__,-
2103 c->self, ssh_err(r));-
2104 }
never executed: end of block
0
2105 }
never executed: end of block
0
2106 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2107 fatal("%s: channel %i: send %s", __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %i: send %s", __func__, c->self, ssh_err(r));
0
2108 free(remote_ipaddr);-
2109 free(local_ipaddr);-
2110}
never executed: end of block
0
2111-
2112void-
2113channel_set_x11_refuse_time(struct ssh *ssh, u_int refuse_time)-
2114{-
2115 ssh->chanctxt->x11_refuse_time = refuse_time;-
2116}
never executed: end of block
0
2117-
2118-
2119-
2120-
2121static void-
2122channel_post_port_listener(struct ssh *ssh, Channel *c,-
2123 fd_set *readset, fd_set *writeset)-
2124{-
2125 Channel *nc;-
2126 struct sockaddr_storage addr;-
2127 int newsock, nextstate;-
2128 socklen_t addrlen;-
2129 char *rtype;-
2130-
2131 if (!kludge_FD_ISSET(c->sock, readset)
!kludge_FD_ISS...sock, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2132 return;
never executed: return;
0
2133-
2134 debug("Connection to port %d forwarding to %.100s port %d requested.",-
2135 c->listening_port, c->path, c->host_port);-
2136-
2137 if (c->type == 11
c->type == 11Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2138 nextstate = 3;-
2139 rtype = "forwarded-tcpip";-
2140 }
never executed: end of block
else if (c->type == 19
c->type == 19Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2141 nextstate = 3;-
2142 rtype = "forwarded-streamlocal@openssh.com";-
2143 }
never executed: end of block
else if (c->host_port == -2
c->host_port == -2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2144 nextstate = 3;-
2145 rtype = "direct-streamlocal@openssh.com";-
2146 }
never executed: end of block
else if (c->host_port == 0
c->host_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2147 nextstate = 13;-
2148 rtype = "dynamic-tcpip";-
2149 }
never executed: end of block
else {
0
2150 nextstate = 3;-
2151 rtype = "direct-tcpip";-
2152 }
never executed: end of block
0
2153-
2154 addrlen = sizeof(addr);-
2155 newsock = accept(c->sock, (struct sockaddr *)&addr, &addrlen);-
2156 if (newsock < 0
newsock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2157 if (-
2158 (*
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2159 !=
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2160 4
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2161 && -
2162 (*
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2163 !=
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2164 11
(*__errno_location ()) != 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2165 &&-
2166 -
2167 (*
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
2168 !=
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
2169 103
(*__errno_location ()) != 103Description
TRUEnever evaluated
FALSEnever evaluated
0
2170 )-
2171 error("accept: %.100s", strerror(
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
2172 (*__errno_location ())
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
2173 ));
never executed: error("accept: %.100s", strerror( (*__errno_location ()) ));
0
2174 if (-
2175 (*
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2176 ==
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2177 24
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2178 || -
2179 (*
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2180 ==
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2181 23
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2182 )-
2183 c->notbefore = monotime() + 1;
never executed: c->notbefore = monotime() + 1;
0
2184 return;
never executed: return;
0
2185 }-
2186 if (c->host_port != -2
c->host_port != -2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2187 set_nodelay(newsock);
never executed: set_nodelay(newsock);
0
2188 nc = channel_new(ssh, rtype, nextstate, newsock, newsock, -1,-
2189 c->local_window_max, c->local_maxpacket, 0, rtype, 1);-
2190 nc->listening_port = c->listening_port;-
2191 nc->host_port = c->host_port;-
2192 if (c->path !=
c->path != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2193 ((void *)0)
c->path != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2194 )-
2195 nc->path = xstrdup(c->path);
never executed: nc->path = xstrdup(c->path);
0
2196-
2197 if (nextstate != 13
nextstate != 13Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2198 port_open_helper(ssh, nc, rtype);
never executed: port_open_helper(ssh, nc, rtype);
0
2199}
never executed: end of block
0
2200-
2201-
2202-
2203-
2204-
2205static void-
2206channel_post_auth_listener(struct ssh *ssh, Channel *c,-
2207 fd_set *readset, fd_set *writeset)-
2208{-
2209 Channel *nc;-
2210 int r, newsock;-
2211 struct sockaddr_storage addr;-
2212 socklen_t addrlen;-
2213-
2214 if (!kludge_FD_ISSET(c->sock, readset)
!kludge_FD_ISS...sock, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2215 return;
never executed: return;
0
2216-
2217 addrlen = sizeof(addr);-
2218 newsock = accept(c->sock, (struct sockaddr *)&addr, &addrlen);-
2219 if (newsock < 0
newsock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2220 error("accept from auth socket: %.100s", strerror(-
2221 (*__errno_location ())-
2222 ));-
2223 if (-
2224 (*
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2225 ==
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2226 24
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2227 || -
2228 (*
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2229 ==
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2230 23
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2231 )-
2232 c->notbefore = monotime() + 1;
never executed: c->notbefore = monotime() + 1;
0
2233 return;
never executed: return;
0
2234 }-
2235 nc = channel_new(ssh, "accepted auth socket",-
2236 3, newsock, newsock, -1,-
2237 c->local_window_max, c->local_maxpacket,-
2238 0, "accepted auth socket", 1);-
2239 open_preamble(ssh, __func__, nc, "auth-agent@openssh.com");-
2240 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2241 fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
2242}
never executed: end of block
0
2243-
2244static void-
2245channel_post_connecting(struct ssh *ssh, Channel *c,-
2246 fd_set *readset, fd_set *writeset)-
2247{-
2248 int err = 0, sock, isopen, r;-
2249 socklen_t sz = sizeof(err);-
2250-
2251 if (!kludge_FD_ISSET(c->sock, writeset)
!kludge_FD_ISS...ock, writeset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2252 return;
never executed: return;
0
2253 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2254 fatal(":%s: channel %d: no remote id", __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
2255-
2256 isopen = (c->type == 22);-
2257 if (getsockopt(c->sock,
getsockopt(c->...&err, &sz) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2258 1
getsockopt(c->...&err, &sz) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2259 ,
getsockopt(c->...&err, &sz) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2260 4
getsockopt(c->...&err, &sz) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2261 , &err, &sz) < 0
getsockopt(c->...&err, &sz) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2262 err = -
2263 (*__errno_location ())-
2264 ;-
2265 error("getsockopt SO_ERROR failed");-
2266 }
never executed: end of block
0
2267 if (err == 0
err == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2268 debug("channel %d: connected to %s port %d",-
2269 c->self, c->connect_ctx.host, c->connect_ctx.port);-
2270 channel_connect_ctx_free(&c->connect_ctx);-
2271 c->type = 4;-
2272 if (isopen
isopenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2273-
2274 }
never executed: end of block
else {
0
2275 if ((
(r = sshpkt_st...ssh, 91)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh,
(r = sshpkt_st...ssh, 91)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2276 91)) != 0
(r = sshpkt_st...ssh, 91)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2277 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2278 (
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->self)) != 0
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2279 (
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_window)) != 0
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2280 (
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_maxpacket))
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2281 != 0
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2282 fatal("%s: channel %i: confirm: %s", __func__,
never executed: fatal("%s: channel %i: confirm: %s", __func__, c->self, ssh_err(r));
0
2283 c->self, ssh_err(r));
never executed: fatal("%s: channel %i: confirm: %s", __func__, c->self, ssh_err(r));
0
2284 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2285 fatal("%s: channel %i: %s", __func__, c->self,
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
2286 ssh_err(r));
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
2287 }
never executed: end of block
0
2288 } else {-
2289 debug("channel %d: connection failed: %s",-
2290 c->self, strerror(err));-
2291-
2292 if ((
(sock = connec...nect_ctx)) > 0Description
TRUEnever evaluated
FALSEnever evaluated
sock = connect_next(&c->connect_ctx)) > 0
(sock = connec...nect_ctx)) > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2293 close(c->sock);-
2294 c->sock = c->rfd = c->wfd = sock;-
2295 channel_find_maxfd(ssh->chanctxt);-
2296 return;
never executed: return;
0
2297 }-
2298-
2299 error("connect_to %.100s port %d: failed.",-
2300 c->connect_ctx.host, c->connect_ctx.port);-
2301 channel_connect_ctx_free(&c->connect_ctx);-
2302 if (isopen
isopenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2303 rdynamic_close(ssh, c);-
2304 }
never executed: end of block
else {
0
2305 if ((
(r = sshpkt_st...ssh, 92)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh,
(r = sshpkt_st...ssh, 92)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2306 92)) != 0
(r = sshpkt_st...ssh, 92)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2307 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2308 (
(r = sshpkt_pu...(ssh, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh,
(r = sshpkt_pu...(ssh, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2309 2)) != 0
(r = sshpkt_pu...(ssh, 2)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2310 (
(r = sshpkt_pu...or(err))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, strerror(err))) != 0
(r = sshpkt_pu...or(err))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2311 (
(r = sshpkt_pu...ssh, "")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, "")) != 0
(r = sshpkt_pu...ssh, "")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2312 fatal("%s: channel %i: failure: %s", __func__,-
2313 c->self, ssh_err(r));-
2314 }
never executed: end of block
0
2315 if ((
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2316 fatal("%s: channel %i: %s", __func__, c->self,
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
2317 ssh_err(r));
never executed: fatal("%s: channel %i: %s", __func__, c->self, ssh_err(r));
0
2318 chan_mark_dead(ssh, c);-
2319 }
never executed: end of block
0
2320 }-
2321}-
2322-
2323static int-
2324channel_handle_rfd(struct ssh *ssh, Channel *c,-
2325 fd_set *readset, fd_set *writeset)-
2326{-
2327 char buf[(16*1024)];-
2328 ssize_t len;-
2329 int r, force;-
2330-
2331 force = c->isatty
c->isattyDescription
TRUEnever evaluated
FALSEnever evaluated
&& c->detach_close
c->detach_closeDescription
TRUEnever evaluated
FALSEnever evaluated
&& c->istate != 3
c->istate != 3Description
TRUEnever evaluated
FALSEnever evaluated
;
0
2332-
2333 if (c->rfd == -1
c->rfd == -1Description
TRUEnever evaluated
FALSEnever evaluated
|| (!force
!forceDescription
TRUEnever evaluated
FALSEnever evaluated
&& !kludge_FD_ISSET(c->rfd, readset)
!kludge_FD_ISS...>rfd, readset)Description
TRUEnever evaluated
FALSEnever evaluated
))
0
2334 return
never executed: return 1;
1;
never executed: return 1;
0
2335-
2336 -
2337(*__errno_location ()) -
2338 = 0;-
2339 len = read(c->rfd, buf, sizeof(buf));-
2340 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2341 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2342 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2343 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2344 ||-
2345 ((-
2346 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2347 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2348 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2349 || -
2350 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2351 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2352 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2353 ) && !force
!forceDescription
TRUEnever evaluated
FALSEnever evaluated
)))
0
2354 return
never executed: return 1;
1;
never executed: return 1;
0
2355-
2356 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2357-
2358-
2359-
2360-
2361 debug2("channel %d: read<=0 rfd %d len %zd",-
2362 c->self, c->rfd, len);-
2363 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2364 debug2("channel %d: not open", c->self);-
2365 chan_mark_dead(ssh, c);-
2366 return
never executed: return -1;
-1;
never executed: return -1;
0
2367 } else {-
2368 chan_read_failed(ssh, c);-
2369 }
never executed: end of block
0
2370 return
never executed: return -1;
-1;
never executed: return -1;
0
2371 }-
2372 if (c->input_filter !=
c->input_filter != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2373 ((void *)0)
c->input_filter != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2374 ) {-
2375 if (c->input_filter(ssh, c, buf, len) == -1
c->input_filte...uf, len) == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2376 debug2("channel %d: filter stops", c->self);-
2377 chan_read_failed(ssh, c);-
2378 }
never executed: end of block
0
2379 }
never executed: end of block
else if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2380 if ((
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_string(c->input, buf, len)) != 0
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2381 fatal("%s: channel %d: put datagram: %s", __func__,
never executed: fatal("%s: channel %d: put datagram: %s", __func__, c->self, ssh_err(r));
0
2382 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: put datagram: %s", __func__, c->self, ssh_err(r));
0
2383 }
never executed: end of block
else if ((
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(c->input, buf, len)) != 0
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2384 fatal("%s: channel %d: put data: %s", __func__,-
2385 c->self, ssh_err(r));-
2386 }
never executed: end of block
0
2387 return
never executed: return 1;
1;
never executed: return 1;
0
2388}-
2389-
2390static int-
2391channel_handle_wfd(struct ssh *ssh, Channel *c,-
2392 fd_set *readset, fd_set *writeset)-
2393{-
2394 struct termios tio;-
2395 u_char *data = -
2396 ((void *)0)-
2397 , *buf;-
2398 size_t dlen, olen = 0;-
2399 int r, len;-
2400-
2401 if (c->wfd == -1
c->wfd == -1Description
TRUEnever evaluated
FALSEnever evaluated
|| !kludge_FD_ISSET(c->wfd, writeset)
!kludge_FD_ISS...wfd, writeset)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2402 sshbuf_len(c->output) == 0
sshbuf_len(c->output) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2403 return
never executed: return 1;
1;
never executed: return 1;
0
2404-
2405-
2406 olen = sshbuf_len(c->output);-
2407 if (c->output_filter !=
c->output_filt...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2408 ((void *)0)
c->output_filt...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2409 ) {-
2410 if ((
(buf = c->outp...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
buf = c->output_filter(ssh, c, &data, &dlen)) ==
(buf = c->outp...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2411 ((void *)0)
(buf = c->outp...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2412 ) {-
2413 debug2("channel %d: filter stops", c->self);-
2414 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2415 chan_mark_dead(ssh, c);
never executed: chan_mark_dead(ssh, c);
0
2416 else-
2417 chan_write_failed(ssh, c);
never executed: chan_write_failed(ssh, c);
0
2418 return
never executed: return -1;
-1;
never executed: return -1;
0
2419 }-
2420 }
never executed: end of block
else if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2421 if ((
(r = sshbuf_ge..., &dlen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_string(c->output, &data, &dlen)) != 0
(r = sshbuf_ge..., &dlen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2422 fatal("%s: channel %d: get datagram: %s", __func__,
never executed: fatal("%s: channel %d: get datagram: %s", __func__, c->self, ssh_err(r));
0
2423 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: get datagram: %s", __func__, c->self, ssh_err(r));
0
2424 buf = data;-
2425 }
never executed: end of block
else {
0
2426 buf = data = sshbuf_mutable_ptr(c->output);-
2427 dlen = sshbuf_len(c->output);-
2428 }
never executed: end of block
0
2429-
2430 if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2431-
2432 len = write(c->wfd, buf, dlen);-
2433 free(data);-
2434 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2435 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2436 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2437 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2438 || -
2439 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2440 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2441 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2442 ||-
2443 -
2444 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2445 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2446 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2447 ))-
2448 return
never executed: return 1;
1;
never executed: return 1;
0
2449 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2450 goto
never executed: goto write_fail;
write_fail;
never executed: goto write_fail;
0
2451 goto
never executed: goto out;
out;
never executed: goto out;
0
2452 }-
2453-
2454-
2455-
2456-
2457-
2458-
2459-
2460 len = write(c->wfd, buf, dlen);-
2461 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
2462 (-
2463 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2464 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2465 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2466 || -
2467 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2468 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2469 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2470 || -
2471 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2472 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2473 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2474 ))-
2475 return
never executed: return 1;
1;
never executed: return 1;
0
2476 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2477 write_fail:-
2478 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2479 debug2("channel %d: not open", c->self);-
2480 chan_mark_dead(ssh, c);-
2481 return
never executed: return -1;
-1;
never executed: return -1;
0
2482 } else {-
2483 chan_write_failed(ssh, c);-
2484 }
never executed: end of block
0
2485 return
never executed: return -1;
-1;
never executed: return -1;
0
2486 }-
2487-
2488 if (c->isatty
c->isattyDescription
TRUEnever evaluated
FALSEnever evaluated
&& dlen >= 1
dlen >= 1Description
TRUEnever evaluated
FALSEnever evaluated
&& buf[0] != '\r'
buf[0] != '\r'Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2489 if (tcgetattr(c->wfd, &tio) == 0
tcgetattr(c->wfd, &tio) == 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
2490 !(tio.c_lflag &
!(tio.c_lflag & 0000010 )Description
TRUEnever evaluated
FALSEnever evaluated
0
2491 0000010
!(tio.c_lflag & 0000010 )Description
TRUEnever evaluated
FALSEnever evaluated
0
2492 )
!(tio.c_lflag & 0000010 )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(tio.c_lflag & 0000002 )Description
TRUEnever evaluated
FALSEnever evaluated
tio.c_lflag &
(tio.c_lflag & 0000002 )Description
TRUEnever evaluated
FALSEnever evaluated
0
2493 0000002
(tio.c_lflag & 0000002 )Description
TRUEnever evaluated
FALSEnever evaluated
0
2494 )
(tio.c_lflag & 0000002 )Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2495-
2496-
2497-
2498-
2499-
2500-
2501 if ((
(r = sshpkt_ms..., 4+len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_msg_ignore(ssh, 4+len)) != 0
(r = sshpkt_ms..., 4+len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2502 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2503 fatal("%s: channel %d: ignore: %s",
never executed: fatal("%s: channel %d: ignore: %s", __func__, c->self, ssh_err(r));
0
2504 __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %d: ignore: %s", __func__, c->self, ssh_err(r));
0
2505 }
never executed: end of block
0
2506 }
never executed: end of block
0
2507-
2508 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->output, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2509 fatal("%s: channel %d: consume: %s",-
2510 __func__, c->self, ssh_err(r));-
2511 }
never executed: end of block
0
2512 out:
code before this statement never executed: out:
0
2513 c->local_consumed += olen - sshbuf_len(c->output);-
2514-
2515 return
never executed: return 1;
1;
never executed: return 1;
0
2516}-
2517-
2518static int-
2519channel_handle_efd_write(struct ssh *ssh, Channel *c,-
2520 fd_set *readset, fd_set *writeset)-
2521{-
2522 int r;-
2523 ssize_t len;-
2524-
2525 if (!kludge_FD_ISSET(c->efd, writeset)
!kludge_FD_ISS...efd, writeset)Description
TRUEnever evaluated
FALSEnever evaluated
|| sshbuf_len(c->extended) == 0
sshbuf_len(c->extended) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2526 return
never executed: return 1;
1;
never executed: return 1;
0
2527-
2528 len = write(c->efd, sshbuf_ptr(c->extended),-
2529 sshbuf_len(c->extended));-
2530 debug2("channel %d: written %zd to efd %d", c->self, len, c->efd);-
2531 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2532 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2533 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2534 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2535 || -
2536 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2537 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2538 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2539 ||-
2540 -
2541 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2542 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2543 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2544 ))-
2545 return
never executed: return 1;
1;
never executed: return 1;
0
2546 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2547 debug2("channel %d: closing write-efd %d", c->self, c->efd);-
2548 channel_close_fd(ssh, &c->efd);-
2549 }
never executed: end of block
else {
0
2550 if ((
(r = sshbuf_co...ed, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->extended, len)) != 0
(r = sshbuf_co...ed, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2551 fatal("%s: channel %d: consume: %s",-
2552 __func__, c->self, ssh_err(r));-
2553 }
never executed: end of block
0
2554 c->local_consumed += len;-
2555 }
never executed: end of block
0
2556 return
never executed: return 1;
1;
never executed: return 1;
0
2557}-
2558-
2559static int-
2560channel_handle_efd_read(struct ssh *ssh, Channel *c,-
2561 fd_set *readset, fd_set *writeset)-
2562{-
2563 char buf[(16*1024)];-
2564 int r;-
2565 ssize_t len;-
2566-
2567 if (!c->detach_close
!c->detach_closeDescription
TRUEnever evaluated
FALSEnever evaluated
&& !kludge_FD_ISSET(c->efd, readset)
!kludge_FD_ISS...>efd, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2568 return
never executed: return 1;
1;
never executed: return 1;
0
2569-
2570 len = read(c->efd, buf, sizeof(buf));-
2571 debug2("channel %d: read %zd from efd %d", c->self, len, c->efd);-
2572 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2573 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2574 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2575 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2576 || ((-
2577 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2578 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2579 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2580 ||-
2581 -
2582 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2583 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2584 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2585 ) && !c->detach_close
!c->detach_closeDescription
TRUEnever evaluated
FALSEnever evaluated
)))
0
2586 return
never executed: return 1;
1;
never executed: return 1;
0
2587 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2588 debug2("channel %d: closing read-efd %d",-
2589 c->self, c->efd);-
2590 channel_close_fd(ssh, &c->efd);-
2591 }
never executed: end of block
else {
0
2592 if (c->extended_usage == 0
c->extended_usage == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2593 debug3("channel %d: discard efd",-
2594 c->self);-
2595 }
never executed: end of block
else if ((
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(c->extended, buf, len)) != 0
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2596 fatal("%s: channel %d: append: %s",-
2597 __func__, c->self, ssh_err(r));-
2598 }
never executed: end of block
0
2599 }
never executed: end of block
0
2600 return
never executed: return 1;
1;
never executed: return 1;
0
2601}-
2602-
2603static int-
2604channel_handle_efd(struct ssh *ssh, Channel *c,-
2605 fd_set *readset, fd_set *writeset)-
2606{-
2607 if (c->efd == -1
c->efd == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2608 return
never executed: return 1;
1;
never executed: return 1;
0
2609-
2610-
2611-
2612 if (c->extended_usage == 2
c->extended_usage == 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2613 return
never executed: return channel_handle_efd_write(ssh, c, readset, writeset);
channel_handle_efd_write(ssh, c, readset, writeset);
never executed: return channel_handle_efd_write(ssh, c, readset, writeset);
0
2614 else if (c->extended_usage == 1
c->extended_usage == 1Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2615 c->extended_usage == 0
c->extended_usage == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2616 return
never executed: return channel_handle_efd_read(ssh, c, readset, writeset);
channel_handle_efd_read(ssh, c, readset, writeset);
never executed: return channel_handle_efd_read(ssh, c, readset, writeset);
0
2617-
2618 return
never executed: return 1;
1;
never executed: return 1;
0
2619}-
2620-
2621static int-
2622channel_check_window(struct ssh *ssh, Channel *c)-
2623{-
2624 int r;-
2625-
2626 if (c->type == 4
c->type == 4Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
2627 !(c->flags & (0x01|0x02))
!(c->flags & (0x01|0x02))Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
2628 ((
(c->local_wind...l_maxpacket*3)Description
TRUEnever evaluated
FALSEnever evaluated
c->local_window_max - c->local_window >
(c->local_wind...l_maxpacket*3)Description
TRUEnever evaluated
FALSEnever evaluated
0
2629 c->local_maxpacket*3)
(c->local_wind...l_maxpacket*3)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2630 c->local_window < c->local_window_max/2
c->local_windo...l_window_max/2Description
TRUEnever evaluated
FALSEnever evaluated
) &&
0
2631 c->local_consumed > 0
c->local_consumed > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2632 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2633 fatal(":%s: channel %d: no remote id",
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
2634 __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
2635 if ((
(r = sshpkt_st...ssh, 93)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh,
(r = sshpkt_st...ssh, 93)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2636 93)) != 0
(r = sshpkt_st...ssh, 93)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2637 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2638 (
(r = sshpkt_pu...onsumed)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_consumed)) != 0
(r = sshpkt_pu...onsumed)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2639 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2640 fatal("%s: channel %i: %s", __func__,-
2641 c->self, ssh_err(r));-
2642 }
never executed: end of block
0
2643 debug2("channel %d: window %d sent adjust %d",-
2644 c->self, c->local_window,-
2645 c->local_consumed);-
2646 c->local_window += c->local_consumed;-
2647 c->local_consumed = 0;-
2648 }
never executed: end of block
0
2649 return
never executed: return 1;
1;
never executed: return 1;
0
2650}-
2651-
2652static void-
2653channel_post_open(struct ssh *ssh, Channel *c,-
2654 fd_set *readset, fd_set *writeset)-
2655{-
2656 channel_handle_rfd(ssh, c, readset, writeset);-
2657 channel_handle_wfd(ssh, c, readset, writeset);-
2658 channel_handle_efd(ssh, c, readset, writeset);-
2659 channel_check_window(ssh, c);-
2660}
never executed: end of block
0
2661-
2662static u_int-
2663read_mux(struct ssh *ssh, Channel *c, u_int need)-
2664{-
2665 char buf[(16*1024)];-
2666 ssize_t len;-
2667 u_int rlen;-
2668 int r;-
2669-
2670 if (sshbuf_len(c->input) < need
sshbuf_len(c->input) < needDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2671 rlen = need - sshbuf_len(c->input);-
2672 len = read(c->rfd, buf, (((rlen) < ((16*1024))) ? (rlen) : ((16*1024))));-
2673 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2674 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2675 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2676 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2677 || -
2678 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2679 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2680 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2681 ))-
2682 return
never executed: return sshbuf_len(c->input);
sshbuf_len(c->input);
never executed: return sshbuf_len(c->input);
0
2683 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2684 debug2("channel %d: ctl read<=0 rfd %d len %zd",-
2685 c->self, c->rfd, len);-
2686 chan_read_failed(ssh, c);-
2687 return
never executed: return 0;
0;
never executed: return 0;
0
2688 } else if ((
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(c->input, buf, len)) != 0
(r = sshbuf_pu...uf, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2689 fatal("%s: channel %d: append: %s",-
2690 __func__, c->self, ssh_err(r));-
2691 }
never executed: end of block
0
2692 }
never executed: end of block
0
2693 return
never executed: return sshbuf_len(c->input);
sshbuf_len(c->input);
never executed: return sshbuf_len(c->input);
0
2694}-
2695-
2696static void-
2697channel_post_mux_client_read(struct ssh *ssh, Channel *c,-
2698 fd_set *readset, fd_set *writeset)-
2699{-
2700 u_int need;-
2701-
2702 if (c->rfd == -1
c->rfd == -1Description
TRUEnever evaluated
FALSEnever evaluated
|| !kludge_FD_ISSET(c->rfd, readset)
!kludge_FD_ISS...>rfd, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2703 return;
never executed: return;
0
2704 if (c->istate != 0
c->istate != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& c->istate != 1
c->istate != 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2705 return;
never executed: return;
0
2706 if (c->mux_pause
c->mux_pauseDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2707 return;
never executed: return;
0
2708-
2709-
2710-
2711-
2712-
2713 if (read_mux(ssh, c, 4) < 4
read_mux(ssh, c, 4) < 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2714 return;
never executed: return;
0
2715-
2716 need = (((u_int32_t)(((const u_char *)(sshbuf_ptr(c->input)))[0]) << 24) | ((u_int32_t)(((const u_char *)(sshbuf_ptr(c->input)))[1]) << 16) | ((u_int32_t)(((const u_char *)(sshbuf_ptr(c->input)))[2]) << 8) | (u_int32_t)(((const u_char *)(sshbuf_ptr(c->input)))[3]));-
2717-
2718 if (need > (256 * 1024)
need > (256 * 1024)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2719 debug2("channel %d: packet too big %u > %u",-
2720 c->self, (256 * 1024), need);-
2721 chan_rcvd_oclose(ssh, c);-
2722 return;
never executed: return;
0
2723 }-
2724 if (read_mux(ssh, c, need + 4) < need + 4
read_mux(ssh, ... 4) < need + 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2725 return;
never executed: return;
0
2726 if (c->mux_rcb(ssh, c) != 0
c->mux_rcb(ssh, c) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2727 debug("channel %d: mux_rcb failed", c->self);-
2728 chan_mark_dead(ssh, c);-
2729 return;
never executed: return;
0
2730 }-
2731}
never executed: end of block
0
2732-
2733static void-
2734channel_post_mux_client_write(struct ssh *ssh, Channel *c,-
2735 fd_set *readset, fd_set *writeset)-
2736{-
2737 ssize_t len;-
2738 int r;-
2739-
2740 if (c->wfd == -1
c->wfd == -1Description
TRUEnever evaluated
FALSEnever evaluated
|| !kludge_FD_ISSET(c->wfd, writeset)
!kludge_FD_ISS...wfd, writeset)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2741 sshbuf_len(c->output) == 0
sshbuf_len(c->output) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2742 return;
never executed: return;
0
2743-
2744 len = write(c->wfd, sshbuf_ptr(c->output), sshbuf_len(c->output));-
2745 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
0
2746 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2747 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2748 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2749 || -
2750 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2751 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2752 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
2753 ))-
2754 return;
never executed: return;
0
2755 if (len <= 0
len <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2756 chan_mark_dead(ssh, c);-
2757 return;
never executed: return;
0
2758 }-
2759 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->output, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2760 fatal("%s: channel %d: consume: %s", __func__,
never executed: fatal("%s: channel %d: consume: %s", __func__, c->self, ssh_err(r));
0
2761 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: consume: %s", __func__, c->self, ssh_err(r));
0
2762}
never executed: end of block
0
2763-
2764static void-
2765channel_post_mux_client(struct ssh *ssh, Channel *c,-
2766 fd_set *readset, fd_set *writeset)-
2767{-
2768 channel_post_mux_client_read(ssh, c, readset, writeset);-
2769 channel_post_mux_client_write(ssh, c, readset, writeset);-
2770}
never executed: end of block
0
2771-
2772static void-
2773channel_post_mux_listener(struct ssh *ssh, Channel *c,-
2774 fd_set *readset, fd_set *writeset)-
2775{-
2776 Channel *nc;-
2777 struct sockaddr_storage addr;-
2778 socklen_t addrlen;-
2779 int newsock;-
2780 uid_t euid;-
2781 gid_t egid;-
2782-
2783 if (!kludge_FD_ISSET(c->sock, readset)
!kludge_FD_ISS...sock, readset)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2784 return;
never executed: return;
0
2785-
2786 debug("multiplexing control connection");-
2787-
2788-
2789-
2790-
2791 memset(&addr, 0, sizeof(addr));-
2792 addrlen = sizeof(addr);-
2793 if ((
(newsock = acc...ddrlen)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
newsock = accept(c->sock, (struct sockaddr*)&addr,
(newsock = acc...ddrlen)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
2794 &addrlen)) == -1
(newsock = acc...ddrlen)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2795 error("%s accept: %s", __func__, strerror(-
2796 (*__errno_location ())-
2797 ));-
2798 if (-
2799 (*
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2800 ==
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2801 24
(*__errno_location ()) == 24Description
TRUEnever evaluated
FALSEnever evaluated
0
2802 || -
2803 (*
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2804 ==
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2805 23
(*__errno_location ()) == 23Description
TRUEnever evaluated
FALSEnever evaluated
0
2806 )-
2807 c->notbefore = monotime() + 1;
never executed: c->notbefore = monotime() + 1;
0
2808 return;
never executed: return;
0
2809 }-
2810-
2811 if (getpeereid(newsock, &euid, &egid) < 0
getpeereid(new...id, &egid) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2812 error("%s getpeereid failed: %s", __func__,-
2813 strerror(-
2814 (*__errno_location ())-
2815 ));-
2816 close(newsock);-
2817 return;
never executed: return;
0
2818 }-
2819 if ((
(euid != 0)Description
TRUEnever evaluated
FALSEnever evaluated
euid != 0)
(euid != 0)Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(getuid() != euid)Description
TRUEnever evaluated
FALSEnever evaluated
getuid() != euid)
(getuid() != euid)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2820 error("multiplex uid mismatch: peer euid %u != uid %u",-
2821 (u_int)euid, (u_int)getuid());-
2822 close(newsock);-
2823 return;
never executed: return;
0
2824 }-
2825 nc = channel_new(ssh, "multiplex client", 16,-
2826 newsock, newsock, -1, c->local_window_max,-
2827 c->local_maxpacket, 0, "mux-control", 1);-
2828 nc->mux_rcb = c->mux_rcb;-
2829 debug3("%s: new mux channel %d fd %d", __func__, nc->self, nc->sock);-
2830-
2831 nc->mux_rcb(ssh, nc);-
2832-
2833 nc->flags |= 0x10;-
2834}
never executed: end of block
0
2835-
2836static void-
2837channel_handler_init(struct ssh_channels *sc)-
2838{-
2839 chan_fn **pre, **post;-
2840-
2841 if ((
(pre = calloc(...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pre = calloc(23, sizeof(*pre))) ==
(pre = calloc(...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2842 ((void *)0)
(pre = calloc(...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2843 ||-
2844 (
(post = calloc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
post = calloc(23, sizeof(*post))) ==
(post = calloc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2845 ((void *)0)
(post = calloc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2846 )-
2847 fatal("%s: allocation failed", __func__);
never executed: fatal("%s: allocation failed", __func__);
0
2848-
2849 pre[4] = &channel_pre_open;-
2850 pre[7] = &channel_pre_x11_open;-
2851 pre[2] = &channel_pre_listener;-
2852 pre[11] = &channel_pre_listener;-
2853 pre[18] = &channel_pre_listener;-
2854 pre[19] = &channel_pre_listener;-
2855 pre[1] = &channel_pre_listener;-
2856 pre[6] = &channel_pre_listener;-
2857 pre[12] = &channel_pre_connecting;-
2858 pre[13] = &channel_pre_dynamic;-
2859 pre[22] = &channel_pre_connecting;-
2860 pre[15] = &channel_pre_listener;-
2861 pre[16] = &channel_pre_mux_client;-
2862-
2863 post[4] = &channel_post_open;-
2864 post[2] = &channel_post_port_listener;-
2865 post[11] = &channel_post_port_listener;-
2866 post[18] = &channel_post_port_listener;-
2867 post[19] = &channel_post_port_listener;-
2868 post[1] = &channel_post_x11_listener;-
2869 post[6] = &channel_post_auth_listener;-
2870 post[12] = &channel_post_connecting;-
2871 post[13] = &channel_post_open;-
2872 post[22] = &channel_post_connecting;-
2873 post[15] = &channel_post_mux_listener;-
2874 post[16] = &channel_post_mux_client;-
2875-
2876 sc->channel_pre = pre;-
2877 sc->channel_post = post;-
2878}
never executed: end of block
0
2879-
2880-
2881static void-
2882channel_garbage_collect(struct ssh *ssh, Channel *c)-
2883{-
2884 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2885 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2886 )-
2887 return;
never executed: return;
0
2888 if (c->detach_user !=
c->detach_user != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2889 ((void *)0)
c->detach_user != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2890 ) {-
2891 if (!chan_is_dead(ssh, c, c->detach_close)
!chan_is_dead(...>detach_close)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2892 return;
never executed: return;
0
2893 debug2("channel %d: gc: notify user", c->self);-
2894 c->detach_user(ssh, c->self, -
2895 ((void *)0)-
2896 );-
2897-
2898 if (c->detach_user !=
c->detach_user != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2899 ((void *)0)
c->detach_user != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2900 )-
2901 return;
never executed: return;
0
2902 debug2("channel %d: gc: user detached", c->self);-
2903 }
never executed: end of block
0
2904 if (!chan_is_dead(ssh, c, 1)
!chan_is_dead(ssh, c, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2905 return;
never executed: return;
0
2906 debug2("channel %d: garbage collecting", c->self);-
2907 channel_free(ssh, c);-
2908}
never executed: end of block
0
2909-
2910enum channel_table { CHAN_PRE, CHAN_POST };-
2911-
2912static void-
2913channel_handler(struct ssh *ssh, int table,-
2914 fd_set *readset, fd_set *writeset, time_t *unpause_secs)-
2915{-
2916 struct ssh_channels *sc = ssh->chanctxt;-
2917 chan_fn **ftab = table == CHAN_PRE
table == CHAN_PREDescription
TRUEnever evaluated
FALSEnever evaluated
? sc->channel_pre : sc->channel_post;
0
2918 u_int i, oalloc;-
2919 Channel *c;-
2920 time_t now;-
2921-
2922 now = monotime();-
2923 if (unpause_secs !=
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2924 ((void *)0)
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2925 )-
2926 *
never executed: *unpause_secs = 0;
unpause_secs = 0;
never executed: *unpause_secs = 0;
0
2927 for (i = 0, oalloc = sc->channels_alloc; i < oalloc
i < oallocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
2928 c = sc->channels[i];-
2929 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2930 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2931 )-
2932 continue;
never executed: continue;
0
2933 if (c->delayed
c->delayedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2934 if (table == CHAN_PRE
table == CHAN_PREDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2935 c->delayed = 0;
never executed: c->delayed = 0;
0
2936 else-
2937 continue;
never executed: continue;
0
2938 }-
2939 if (ftab[c->type] !=
ftab[c->type] != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2940 ((void *)0)
ftab[c->type] != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2941 ) {-
2942-
2943-
2944-
2945 if (c->notbefore <= now
c->notbefore <= nowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2946 (*
never executed: (*ftab[c->type])(ssh, c, readset, writeset);
ftab[c->type])(ssh, c, readset, writeset);
never executed: (*ftab[c->type])(ssh, c, readset, writeset);
0
2947 else if (unpause_secs !=
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2948 ((void *)0)
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2949 ) {-
2950-
2951-
2952-
2953-
2954 debug3("%s: chan %d: skip for %d more seconds",-
2955 __func__, c->self,-
2956 (int)(c->notbefore - now));-
2957 if (*
*unpause_secs == 0Description
TRUEnever evaluated
FALSEnever evaluated
unpause_secs == 0
*unpause_secs == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
2958 (
(c->notbefore ... *unpause_secsDescription
TRUEnever evaluated
FALSEnever evaluated
c->notbefore - now) < *unpause_secs
(c->notbefore ... *unpause_secsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2959 *
never executed: *unpause_secs = c->notbefore - now;
unpause_secs = c->notbefore - now;
never executed: *unpause_secs = c->notbefore - now;
0
2960 }
never executed: end of block
0
2961 }
never executed: end of block
0
2962 channel_garbage_collect(ssh, c);-
2963 }
never executed: end of block
0
2964 if (unpause_secs !=
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2965 ((void *)0)
unpause_secs != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2966 && *
*unpause_secs != 0Description
TRUEnever evaluated
FALSEnever evaluated
unpause_secs != 0
*unpause_secs != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2967 debug3("%s: first channel unpauses in %d seconds",
never executed: debug3("%s: first channel unpauses in %d seconds", __func__, (int)*unpause_secs);
0
2968 __func__, (int)*unpause_secs);
never executed: debug3("%s: first channel unpauses in %d seconds", __func__, (int)*unpause_secs);
0
2969}
never executed: end of block
0
2970-
2971-
2972-
2973-
2974-
2975-
2976static void-
2977channel_before_prepare_select(struct ssh *ssh)-
2978{-
2979 struct ssh_channels *sc = ssh->chanctxt;-
2980 Channel *c;-
2981 u_int i, oalloc;-
2982-
2983 for (i = 0, oalloc = sc->channels_alloc; i < oalloc
i < oallocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
2984 c = sc->channels[i];-
2985 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2986 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2987 )-
2988 continue;
never executed: continue;
0
2989 if (c->type == 21
c->type == 21Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2990 channel_before_prepare_select_rdynamic(ssh, c);
never executed: channel_before_prepare_select_rdynamic(ssh, c);
0
2991 }
never executed: end of block
0
2992}
never executed: end of block
0
2993-
2994-
2995-
2996-
2997-
2998void-
2999channel_prepare_select(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp,-
3000 int *maxfdp, u_int *nallocp, time_t *minwait_secs)-
3001{-
3002 u_int n, sz, nfdset;-
3003-
3004 channel_before_prepare_select(ssh);-
3005-
3006 n = (((*
((*maxfdp) > (...annel_max_fd))Description
TRUEnever evaluated
FALSEnever evaluated
maxfdp) > (ssh->chanctxt->channel_max_fd))
((*maxfdp) > (...annel_max_fd))Description
TRUEnever evaluated
FALSEnever evaluated
? (*maxfdp) : (ssh->chanctxt->channel_max_fd));
0
3007-
3008 nfdset = -
3009 (((-
3010 n+1-
3011 ) + (((8 * (int) sizeof (__fd_mask))) - 1)) / ((8 * (int) sizeof (__fd_mask))))-
3012 ;-
3013-
3014 if (nfdset
nfdsetDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
3015 (
(1844674407370...izeof(fd_mask)Description
TRUEnever evaluated
FALSEnever evaluated
18446744073709551615UL)
(1844674407370...izeof(fd_mask)Description
TRUEnever evaluated
FALSEnever evaluated
0
3016 / nfdset < sizeof(fd_mask)
(1844674407370...izeof(fd_mask)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3017 fatal("channel_prepare_select: max_fd (%d) is too large", n);
never executed: fatal("channel_prepare_select: max_fd (%d) is too large", n);
0
3018 sz = nfdset * sizeof(fd_mask);-
3019-
3020-
3021 if (*
*readsetp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
readsetp ==
*readsetp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3022 ((void *)0)
*readsetp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3023 || sz > *nallocp
sz > *nallocpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3024 *readsetp = xreallocarray(*readsetp, nfdset, sizeof(fd_mask));-
3025 *writesetp = xreallocarray(*writesetp, nfdset, sizeof(fd_mask));-
3026 *nallocp = sz;-
3027 }
never executed: end of block
0
3028 *maxfdp = n;-
3029 memset(*readsetp, 0, sz);-
3030 memset(*writesetp, 0, sz);-
3031-
3032 if (!ssh_packet_is_rekeying(ssh)
!ssh_packet_is_rekeying(ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3033 channel_handler(ssh, CHAN_PRE, *readsetp, *writesetp,
never executed: channel_handler(ssh, CHAN_PRE, *readsetp, *writesetp, minwait_secs);
0
3034 minwait_secs);
never executed: channel_handler(ssh, CHAN_PRE, *readsetp, *writesetp, minwait_secs);
0
3035}
never executed: end of block
0
3036-
3037-
3038-
3039-
3040-
3041void-
3042channel_after_select(struct ssh *ssh, fd_set *readset, fd_set *writeset)-
3043{-
3044 channel_handler(ssh, CHAN_POST, readset, writeset, -
3045 ((void *)0)-
3046 );-
3047}
never executed: end of block
0
3048-
3049-
3050-
3051-
3052static void-
3053channel_output_poll_input_open(struct ssh *ssh, Channel *c)-
3054{-
3055 size_t len, plen;-
3056 const u_char *pkt;-
3057 int r;-
3058-
3059 if ((
(len = sshbuf_...->input)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
len = sshbuf_len(c->input)) == 0
(len = sshbuf_...->input)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3060 if (c->istate == 1
c->istate == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3061-
3062-
3063-
3064-
3065-
3066-
3067-
3068 if ((c->extended_usage == 1
c->extended_usage == 1Description
TRUEnever evaluated
FALSEnever evaluated
&& (c->efd != -1
c->efd != -1Description
TRUEnever evaluated
FALSEnever evaluated
|| sshbuf_len(c->extended) > 0
sshbuf_len(c->extended) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
3069 debug2("channel %d: "
never executed: debug2("channel %d: " "ibuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
3070 "ibuf_empty delayed efd %d/(%zu)",
never executed: debug2("channel %d: " "ibuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
3071 c->self, c->efd, sshbuf_len(c->extended));
never executed: debug2("channel %d: " "ibuf_empty delayed efd %d/(%zu)", c->self, c->efd, sshbuf_len(c->extended));
0
3072 else-
3073 chan_ibuf_empty(ssh, c);
never executed: chan_ibuf_empty(ssh, c);
0
3074 }-
3075 return;
never executed: return;
0
3076 }-
3077-
3078 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3079 fatal(":%s: channel %d: no remote id", __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
3080-
3081 if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3082-
3083 if ((
(r = sshbuf_ge..., &plen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_string_direct(c->input, &pkt, &plen)) != 0
(r = sshbuf_ge..., &plen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3084 fatal("%s: channel %d: get datagram: %s", __func__,
never executed: fatal("%s: channel %d: get datagram: %s", __func__, c->self, ssh_err(r));
0
3085 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: get datagram: %s", __func__, c->self, ssh_err(r));
0
3086-
3087-
3088-
3089-
3090-
3091 if (plen > c->remote_window
plen > c->remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
|| plen > c->remote_maxpacket
plen > c->remote_maxpacketDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3092 debug("channel %d: datagram too big", c->self);-
3093 return;
never executed: return;
0
3094 }-
3095-
3096 if ((
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 94)) != 0
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3097 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3098 (
(r = sshpkt_pu...t, plen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_string(ssh, pkt, plen)) != 0
(r = sshpkt_pu...t, plen)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3099 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3100 fatal("%s: channel %i: datagram: %s", __func__,-
3101 c->self, ssh_err(r));-
3102 }
never executed: end of block
0
3103 c->remote_window -= plen;-
3104 return;
never executed: return;
0
3105 }-
3106-
3107-
3108 if (len > c->remote_window
len > c->remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3109 len = c->remote_window;
never executed: len = c->remote_window;
0
3110 if (len > c->remote_maxpacket
len > c->remote_maxpacketDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3111 len = c->remote_maxpacket;
never executed: len = c->remote_maxpacket;
0
3112 if (len == 0
len == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3113 return;
never executed: return;
0
3114 if ((
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 94)) != 0
(r = sshpkt_st...ssh, 94)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3115 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3116 (
(r = sshpkt_pu...t), len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_string(ssh, sshbuf_ptr(c->input), len)) != 0
(r = sshpkt_pu...t), len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3117 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3118 fatal("%s: channel %i: data: %s", __func__,-
3119 c->self, ssh_err(r));-
3120 }
never executed: end of block
0
3121 if ((
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->input, len)) != 0
(r = sshbuf_co...ut, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3122 fatal("%s: channel %i: consume: %s", __func__,
never executed: fatal("%s: channel %i: consume: %s", __func__, c->self, ssh_err(r));
0
3123 c->self, ssh_err(r));
never executed: fatal("%s: channel %i: consume: %s", __func__, c->self, ssh_err(r));
0
3124 c->remote_window -= len;-
3125}
never executed: end of block
0
3126-
3127-
3128-
3129-
3130static void-
3131channel_output_poll_extended_read(struct ssh *ssh, Channel *c)-
3132{-
3133 size_t len;-
3134 int r;-
3135-
3136 if ((
(len = sshbuf_...xtended)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
len = sshbuf_len(c->extended)) == 0
(len = sshbuf_...xtended)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3137 return;
never executed: return;
0
3138-
3139 debug2("channel %d: rwin %u elen %zu euse %d", c->self,-
3140 c->remote_window, sshbuf_len(c->extended), c->extended_usage);-
3141 if (len > c->remote_window
len > c->remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3142 len = c->remote_window;
never executed: len = c->remote_window;
0
3143 if (len > c->remote_maxpacket
len > c->remote_maxpacketDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3144 len = c->remote_maxpacket;
never executed: len = c->remote_maxpacket;
0
3145 if (len == 0
len == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3146 return;
never executed: return;
0
3147 if (!c->have_remote_id
!c->have_remote_idDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3148 fatal(":%s: channel %d: no remote id", __func__, c->self);
never executed: fatal(":%s: channel %d: no remote id", __func__, c->self);
0
3149 if ((
(r = sshpkt_st...ssh, 95)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 95)) != 0
(r = sshpkt_st...ssh, 95)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3150 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3151 (
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, 1)) != 0
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3152 (
(r = sshpkt_pu...d), len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_string(ssh, sshbuf_ptr(c->extended), len)) != 0
(r = sshpkt_pu...d), len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3153 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3154 fatal("%s: channel %i: data: %s", __func__,-
3155 c->self, ssh_err(r));-
3156 }
never executed: end of block
0
3157 if ((
(r = sshbuf_co...ed, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_consume(c->extended, len)) != 0
(r = sshbuf_co...ed, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3158 fatal("%s: channel %i: consume: %s", __func__,
never executed: fatal("%s: channel %i: consume: %s", __func__, c->self, ssh_err(r));
0
3159 c->self, ssh_err(r));
never executed: fatal("%s: channel %i: consume: %s", __func__, c->self, ssh_err(r));
0
3160 c->remote_window -= len;-
3161 debug2("channel %d: sent ext data %zu", c->self, len);-
3162}
never executed: end of block
0
3163-
3164-
3165void-
3166channel_output_poll(struct ssh *ssh)-
3167{-
3168 struct ssh_channels *sc = ssh->chanctxt;-
3169 Channel *c;-
3170 u_int i;-
3171-
3172 for (i = 0; i < sc->channels_alloc
i < sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
3173 c = sc->channels[i];-
3174 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3175 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3176 )-
3177 continue;
never executed: continue;
0
3178-
3179-
3180-
3181-
3182-
3183 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3184 continue;
never executed: continue;
0
3185 if ((
(c->flags & (0x01|0x02))Description
TRUEnever evaluated
FALSEnever evaluated
c->flags & (0x01|0x02))
(c->flags & (0x01|0x02))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3186-
3187 debug3("channel %d: will not send data after close",-
3188 c->self);-
3189 continue;
never executed: continue;
0
3190 }-
3191-
3192-
3193 if (c->istate == 0
c->istate == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3194 c->istate == 1
c->istate == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3195 channel_output_poll_input_open(ssh, c);
never executed: channel_output_poll_input_open(ssh, c);
0
3196-
3197 if (!(c->flags & 0x04)
!(c->flags & 0x04)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
3198 c->extended_usage == 1
c->extended_usage == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3199 channel_output_poll_extended_read(ssh, c);
never executed: channel_output_poll_extended_read(ssh, c);
0
3200 }
never executed: end of block
0
3201}
never executed: end of block
0
3202int-
3203channel_proxy_downstream(struct ssh *ssh, Channel *downstream)-
3204{-
3205 Channel *c = -
3206 ((void *)0)-
3207 ;-
3208 struct sshbuf *original = -
3209 ((void *)0)-
3210 , *modified = -
3211 ((void *)0)-
3212 ;-
3213 const u_char *cp;-
3214 char *ctype = -
3215 ((void *)0)-
3216 , *listen_host = -
3217 ((void *)0)-
3218 ;-
3219 u_char type;-
3220 size_t have;-
3221 int ret = -1, r;-
3222 u_int id, remote_id, listen_port;-
3223-
3224-
3225 if ((
(r = sshbuf_ge..., &have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_string_direct(downstream->input, &cp, &have))
(r = sshbuf_ge..., &have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3226 != 0
(r = sshbuf_ge..., &have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3227 error("%s: malformed message: %s", __func__, ssh_err(r));-
3228 return
never executed: return -1;
-1;
never executed: return -1;
0
3229 }-
3230 if (have < 2
have < 2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3231 error("%s: short message", __func__);-
3232 return
never executed: return -1;
-1;
never executed: return -1;
0
3233 }-
3234 type = cp[1];-
3235-
3236 cp += 2;-
3237 have -= 2;-
3238 if (ssh_packet_log_type(type)
ssh_packet_log_type(type)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3239 debug3("%s: channel %u: down->up: type %u", __func__,
never executed: debug3("%s: channel %u: down->up: type %u", __func__, downstream->self, type);
0
3240 downstream->self, type);
never executed: debug3("%s: channel %u: down->up: type %u", __func__, downstream->self, type);
0
3241-
3242 switch (type) {-
3243 case
never executed: case 90:
90:
never executed: case 90:
0
3244 if ((
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
original = sshbuf_from(cp, have)) ==
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3245 ((void *)0)
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3246 ||-
3247 (
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
modified = sshbuf_new()) ==
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3248 ((void *)0)
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3249 ) {-
3250 error("%s: alloc", __func__);-
3251 goto
never executed: goto out;
out;
never executed: goto out;
0
3252 }-
3253 if ((
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_cstring(original, &ctype,
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3254 ((void *)0)
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3255 )) != 0
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3256 (
(r = sshbuf_ge...al, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_u32(original, &id)) != 0
(r = sshbuf_ge...al, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3257 error("%s: parse error %s", __func__, ssh_err(r));-
3258 goto
never executed: goto out;
out;
never executed: goto out;
0
3259 }-
3260 c = channel_new(ssh, "mux proxy", 20,-
3261 -1, -1, -1, 0, 0, 0, ctype, 1);-
3262 c->mux_ctx = downstream;-
3263 c->mux_downstream_id = id;-
3264 if ((
(r = sshbuf_pu..., ctype)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_cstring(modified, ctype)) != 0
(r = sshbuf_pu..., ctype)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3265 (
(r = sshbuf_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u32(modified, c->self)) != 0
(r = sshbuf_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3266 (
(r = sshbuf_pu...riginal)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_putb(modified, original)) != 0
(r = sshbuf_pu...riginal)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3267 error("%s: compose error %s", __func__, ssh_err(r));-
3268 channel_free(ssh, c);-
3269 goto
never executed: goto out;
out;
never executed: goto out;
0
3270 }-
3271 break;
never executed: break;
0
3272 case
never executed: case 91:
91:
never executed: case 91:
0
3273-
3274-
3275-
3276-
3277 if ((
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
original = sshbuf_from(cp, have)) ==
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3278 ((void *)0)
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3279 ||-
3280 (
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
modified = sshbuf_new()) ==
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3281 ((void *)0)
(modified = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3282 ) {-
3283 error("%s: alloc", __func__);-
3284 goto
never executed: goto out;
out;
never executed: goto out;
0
3285 }-
3286 if ((
(r = sshbuf_ge...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_u32(original, &remote_id)) != 0
(r = sshbuf_ge...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3287 (
(r = sshbuf_ge...al, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_u32(original, &id)) != 0
(r = sshbuf_ge...al, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3288 error("%s: parse error %s", __func__, ssh_err(r));-
3289 goto
never executed: goto out;
out;
never executed: goto out;
0
3290 }-
3291 c = channel_new(ssh, "mux proxy", 20,-
3292 -1, -1, -1, 0, 0, 0, "mux-down-connect", 1);-
3293 c->mux_ctx = downstream;-
3294 c->mux_downstream_id = id;-
3295 c->remote_id = remote_id;-
3296 c->have_remote_id = 1;-
3297 if ((
(r = sshbuf_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u32(modified, remote_id)) != 0
(r = sshbuf_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3298 (
(r = sshbuf_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u32(modified, c->self)) != 0
(r = sshbuf_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3299 (
(r = sshbuf_pu...riginal)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_putb(modified, original)) != 0
(r = sshbuf_pu...riginal)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3300 error("%s: compose error %s", __func__, ssh_err(r));-
3301 channel_free(ssh, c);-
3302 goto
never executed: goto out;
out;
never executed: goto out;
0
3303 }-
3304 break;
never executed: break;
0
3305 case
never executed: case 80:
80:
never executed: case 80:
0
3306 if ((
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
original = sshbuf_from(cp, have)) ==
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3307 ((void *)0)
(original = ss...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3308 ) {-
3309 error("%s: alloc", __func__);-
3310 goto
never executed: goto out;
out;
never executed: goto out;
0
3311 }-
3312 if ((
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_cstring(original, &ctype,
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3313 ((void *)0)
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3314 )) != 0
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3315 error("%s: parse error %s", __func__, ssh_err(r));-
3316 goto
never executed: goto out;
out;
never executed: goto out;
0
3317 }-
3318 if (-
3319 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3320 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3321 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3322 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3323 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3324 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3325 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3326 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3327 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3328 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3329 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3330 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3331 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3332 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3333 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3334 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3335 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3336 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3337 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3338 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3339 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3340 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3341 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3342 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3343 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3344 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3345 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3346 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3347 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3348 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3349 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3350 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3351 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3352 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3353 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3354 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3355 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3356 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3357 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3358 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3359 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3360 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3361 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3362 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3363 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3364 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3365 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( ctype ))[3] - __s2[3]);
0
3366 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( ctype ))[3] - __s2[3]);
0
3367 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3368 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3369 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3370 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3371 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3372 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3373 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3374 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3375 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3376 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3377 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3378 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3379 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3380 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3381 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3382 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3383 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3384 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3385 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3386 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3387 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3388 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3389 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3390 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3391 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3392 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3393 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "tcpip-forward" ))[3] - __s2[3]);
0
3394 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "tcpip-forward" ))[3] - __s2[3]);
0
3395 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3396 ctype
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3397 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3398 "tcpip-forward"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3399 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3400 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3401 error("%s: unsupported request %s", __func__, ctype);-
3402 goto
never executed: goto out;
out;
never executed: goto out;
0
3403 }-
3404 if ((
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_u8(original,
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3405 ((void *)0)
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3406 )) != 0
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3407 (
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_cstring(original, &listen_host,
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3408 ((void *)0)
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3409 )) != 0
(r = sshbuf_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3410 (
(r = sshbuf_ge...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_get_u32(original, &listen_port)) != 0
(r = sshbuf_ge...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3411 error("%s: parse error %s", __func__, ssh_err(r));-
3412 goto
never executed: goto out;
out;
never executed: goto out;
0
3413 }-
3414 if (listen_port > 65535
listen_port > 65535Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3415 error("%s: tcpip-forward for %s: bad port %u",-
3416 __func__, listen_host, listen_port);-
3417 goto
never executed: goto out;
out;
never executed: goto out;
0
3418 }-
3419-
3420 permission_set_add(ssh, 0x101, (1<<1), "<mux>", -1,-
3421 listen_host, -
3422 ((void *)0)-
3423 , (int)listen_port, downstream);-
3424 listen_host = -
3425 ((void *)0)-
3426 ;-
3427 break;
never executed: break;
0
3428 case
never executed: case 97:
97:
never executed: case 97:
0
3429 if (have < 4
have < 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3430 break;
never executed: break;
0
3431 remote_id = (((u_int32_t)(((const u_char *)(cp))[0]) << 24) | ((u_int32_t)(((const u_char *)(cp))[1]) << 16) | ((u_int32_t)(((const u_char *)(cp))[2]) << 8) | (u_int32_t)(((const u_char *)(cp))[3]));-
3432 if ((
(c = channel_b...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_by_remote_id(ssh, remote_id)) !=
(c = channel_b...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3433 ((void *)0)
(c = channel_b...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3434 ) {-
3435 if (c->flags & 0x02
c->flags & 0x02Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3436 channel_free(ssh, c);
never executed: channel_free(ssh, c);
0
3437 else-
3438 c->flags |= 0x01;
never executed: c->flags |= 0x01;
0
3439 }-
3440 break;
never executed: break;
0
3441 }-
3442 if (modified
modifiedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3443 if ((
(r = sshpkt_st...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, type)) != 0
(r = sshpkt_st...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3444 (
(r = sshpkt_pu...odified)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_putb(ssh, modified)) != 0
(r = sshpkt_pu...odified)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3445 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3446 error("%s: send %s", __func__, ssh_err(r));-
3447 goto
never executed: goto out;
out;
never executed: goto out;
0
3448 }-
3449 }
never executed: end of block
else {
0
3450 if ((
(r = sshpkt_st...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, type)) != 0
(r = sshpkt_st...h, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3451 (
(r = sshpkt_pu...p, have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put(ssh, cp, have)) != 0
(r = sshpkt_pu...p, have)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3452 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3453 error("%s: send %s", __func__, ssh_err(r));-
3454 goto
never executed: goto out;
out;
never executed: goto out;
0
3455 }-
3456 }
never executed: end of block
0
3457 ret = 0;-
3458 out:
code before this statement never executed: out:
0
3459 free(ctype);-
3460 free(listen_host);-
3461 sshbuf_free(original);-
3462 sshbuf_free(modified);-
3463 return
never executed: return ret;
ret;
never executed: return ret;
0
3464}-
3465-
3466-
3467-
3468-
3469-
3470-
3471-
3472int-
3473channel_proxy_upstream(Channel *c, int type, u_int32_t seq, struct ssh *ssh)-
3474{-
3475 struct sshbuf *b = -
3476 ((void *)0)-
3477 ;-
3478 Channel *downstream;-
3479 const u_char *cp = -
3480 ((void *)0)-
3481 ;-
3482 size_t len;-
3483 int r;-
3484-
3485-
3486-
3487-
3488-
3489-
3490-
3491 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3492 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3493 || c->type != 20
c->type != 20Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3494 return
never executed: return 0;
0;
never executed: return 0;
0
3495 if ((
(downstream = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
downstream = c->mux_ctx) ==
(downstream = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3496 ((void *)0)
(downstream = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3497 )-
3498 return
never executed: return 0;
0;
never executed: return 0;
0
3499 switch (type) {-
3500 case
never executed: case 97:
97:
never executed: case 97:
0
3501 case
never executed: case 94:
94:
never executed: case 94:
0
3502 case
never executed: case 96:
96:
never executed: case 96:
0
3503 case
never executed: case 95:
95:
never executed: case 95:
0
3504 case
never executed: case 91:
91:
never executed: case 91:
0
3505 case
never executed: case 92:
92:
never executed: case 92:
0
3506 case
never executed: case 93:
93:
never executed: case 93:
0
3507 case
never executed: case 99:
99:
never executed: case 99:
0
3508 case
never executed: case 100:
100:
never executed: case 100:
0
3509 case
never executed: case 98:
98:
never executed: case 98:
0
3510 break;
never executed: break;
0
3511 default
never executed: default:
:
never executed: default:
0
3512 debug2("%s: channel %u: unsupported type %u", __func__,-
3513 c->self, type);-
3514 return
never executed: return 0;
0;
never executed: return 0;
0
3515 }-
3516 if ((
(b = sshbuf_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
b = sshbuf_new()) ==
(b = sshbuf_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3517 ((void *)0)
(b = sshbuf_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3518 ) {-
3519 error("%s: alloc reply", __func__);-
3520 goto
never executed: goto out;
out;
never executed: goto out;
0
3521 }-
3522-
3523 cp = sshpkt_ptr(ssh, &len);-
3524 if (cp ==
cp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3525 ((void *)0)
cp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3526 ) {-
3527 error("%s: no packet", __func__);-
3528 goto
never executed: goto out;
out;
never executed: goto out;
0
3529 }-
3530-
3531 if ((
(r = sshbuf_put_u8(b, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u8(b, 0)) != 0
(r = sshbuf_put_u8(b, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3532 (
(r = sshbuf_pu...b, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u8(b, type)) != 0
(r = sshbuf_pu...b, type)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3533 (
(r = sshbuf_pu...ream_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_u32(b, c->mux_downstream_id)) != 0
(r = sshbuf_pu...ream_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3534 (
(r = sshbuf_pu...cp, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(b, cp, len)) != 0
(r = sshbuf_pu...cp, len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3535 (
(r = sshbuf_pu...tput, b)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_stringb(downstream->output, b)) != 0
(r = sshbuf_pu...tput, b)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3536 error("%s: compose for muxclient %s", __func__, ssh_err(r));-
3537 goto
never executed: goto out;
out;
never executed: goto out;
0
3538 }-
3539-
3540 if (ssh_packet_log_type(type)
ssh_packet_log_type(type)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3541 debug3("%s: channel %u: up->down: type %u", __func__, c->self,
never executed: debug3("%s: channel %u: up->down: type %u", __func__, c->self, type);
0
3542 type);
never executed: debug3("%s: channel %u: up->down: type %u", __func__, c->self, type);
0
3543 out:
code before this statement never executed: out:
0
3544-
3545 switch (type) {-
3546 case
never executed: case 91:
91:
never executed: case 91:
0
3547-
3548 if (cp
cpDescription
TRUEnever evaluated
FALSEnever evaluated
&& len > 4
len > 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3549 c->remote_id = (((u_int32_t)(((const u_char *)(cp))[0]) << 24) | ((u_int32_t)(((const u_char *)(cp))[1]) << 16) | ((u_int32_t)(((const u_char *)(cp))[2]) << 8) | (u_int32_t)(((const u_char *)(cp))[3]));-
3550 c->have_remote_id = 1;-
3551 }
never executed: end of block
0
3552 break;
never executed: break;
0
3553 case
never executed: case 97:
97:
never executed: case 97:
0
3554 if (c->flags & 0x01
c->flags & 0x01Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3555 channel_free(ssh, c);
never executed: channel_free(ssh, c);
0
3556 else-
3557 c->flags |= 0x02;
never executed: c->flags |= 0x02;
0
3558 break;
never executed: break;
0
3559 }-
3560 sshbuf_free(b);-
3561 return
never executed: return 1;
1;
never executed: return 1;
0
3562}-
3563-
3564-
3565-
3566-
3567static int-
3568channel_parse_id(struct ssh *ssh, const char *where, const char *what)-
3569{-
3570 u_int32_t id;-
3571 int r;-
3572-
3573 if ((
(r = sshpkt_ge...sh, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &id)) != 0
(r = sshpkt_ge...sh, &id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3574 error("%s: parse id: %s", where, ssh_err(r));-
3575 ssh_packet_disconnect(ssh, "Invalid %s message", what);-
3576 }
never executed: end of block
0
3577 if (id > 0x7fffffff
id > 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3578 error("%s: bad channel id %u: %s", where, id, ssh_err(r));-
3579 ssh_packet_disconnect(ssh, "Invalid %s channel id", what);-
3580 }
never executed: end of block
0
3581 return
never executed: return (int)id;
(int)id;
never executed: return (int)id;
0
3582}-
3583-
3584-
3585static Channel *-
3586channel_from_packet_id(struct ssh *ssh, const char *where, const char *what)-
3587{-
3588 int id = channel_parse_id(ssh, where, what);-
3589 Channel *c;-
3590-
3591 if ((
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_lookup(ssh, id)) ==
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3592 ((void *)0)
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3593 ) {-
3594 ssh_packet_disconnect(ssh,-
3595 "%s packet referred to nonexistent channel %d", what, id);-
3596 }
never executed: end of block
0
3597 return
never executed: return c;
c;
never executed: return c;
0
3598}-
3599-
3600int-
3601channel_input_data(int type, u_int32_t seq, struct ssh *ssh)-
3602{-
3603 const u_char *data;-
3604 size_t data_len, win_len;-
3605 Channel *c = channel_from_packet_id(ssh, __func__, "data");-
3606 int r;-
3607-
3608 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3609 return
never executed: return 0;
0;
never executed: return 0;
0
3610-
3611-
3612 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
3613 c->type != 21
c->type != 21Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
3614 c->type != 22
c->type != 22Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
3615 c->type != 7
c->type != 7Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3616 return
never executed: return 0;
0;
never executed: return 0;
0
3617-
3618-
3619 if ((
(r = sshpkt_ge...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0
(r = sshpkt_ge...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3620 fatal("%s: channel %d: get data: %s", __func__,
never executed: fatal("%s: channel %d: get data: %s", __func__, c->self, ssh_err(r));
0
3621 c->self, ssh_err(r));
never executed: fatal("%s: channel %d: get data: %s", __func__, c->self, ssh_err(r));
0
3622 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 2967); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3623-
3624 win_len = data_len;-
3625 if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3626 win_len += 4;
never executed: win_len += 4;
0
3627-
3628-
3629-
3630-
3631-
3632-
3633 if (c->ostate != 0
c->ostate != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3634 c->local_window -= win_len;-
3635 c->local_consumed += win_len;-
3636 return
never executed: return 0;
0;
never executed: return 0;
0
3637 }-
3638-
3639 if (win_len > c->local_maxpacket
win_len > c->local_maxpacketDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3640 logit("channel %d: rcvd big packet %zu, maxpack %u",-
3641 c->self, win_len, c->local_maxpacket);-
3642 return
never executed: return 0;
0;
never executed: return 0;
0
3643 }-
3644 if (win_len > c->local_window
win_len > c->local_windowDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3645 logit("channel %d: rcvd too much data %zu, win %u",-
3646 c->self, win_len, c->local_window);-
3647 return
never executed: return 0;
0;
never executed: return 0;
0
3648 }-
3649 c->local_window -= win_len;-
3650-
3651 if (c->datagram
c->datagramDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3652 if ((
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put_string(c->output, data, data_len)) != 0
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3653 fatal("%s: channel %d: append datagram: %s",
never executed: fatal("%s: channel %d: append datagram: %s", __func__, c->self, ssh_err(r));
0
3654 __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %d: append datagram: %s", __func__, c->self, ssh_err(r));
0
3655 }
never executed: end of block
else if ((
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(c->output, data, data_len)) != 0
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3656 fatal("%s: channel %d: append data: %s",
never executed: fatal("%s: channel %d: append data: %s", __func__, c->self, ssh_err(r));
0
3657 __func__, c->self, ssh_err(r));
never executed: fatal("%s: channel %d: append data: %s", __func__, c->self, ssh_err(r));
0
3658-
3659 return
never executed: return 0;
0;
never executed: return 0;
0
3660}-
3661-
3662int-
3663channel_input_extended_data(int type, u_int32_t seq, struct ssh *ssh)-
3664{-
3665 const u_char *data;-
3666 size_t data_len;-
3667 u_int32_t tcode;-
3668 Channel *c = channel_from_packet_id(ssh, __func__, "extended data");-
3669 int r;-
3670-
3671 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3672 return
never executed: return 0;
0;
never executed: return 0;
0
3673 if (c->type != 4
c->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3674 logit("channel %d: ext data for non open", c->self);-
3675 return
never executed: return 0;
0;
never executed: return 0;
0
3676 }-
3677 if (c->flags & 0x08
c->flags & 0x08Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3678 if (datafellows & 0x00200000
datafellows & 0x00200000Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3679 debug("channel %d: accepting ext data after eof",
never executed: debug("channel %d: accepting ext data after eof", c->self);
0
3680 c->self);
never executed: debug("channel %d: accepting ext data after eof", c->self);
0
3681 else-
3682 ssh_packet_disconnect(ssh, "Received extended_data "
never executed: ssh_packet_disconnect(ssh, "Received extended_data " "after EOF on channel %d.", c->self);
0
3683 "after EOF on channel %d.", c->self);
never executed: ssh_packet_disconnect(ssh, "Received extended_data " "after EOF on channel %d.", c->self);
0
3684 }-
3685-
3686 if ((
(r = sshpkt_ge... &tcode)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &tcode)) != 0
(r = sshpkt_ge... &tcode)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3687 error("%s: parse tcode: %s", __func__, ssh_err(r));-
3688 ssh_packet_disconnect(ssh, "Invalid extended_data message");-
3689 }
never executed: end of block
0
3690 if (c->efd == -1
c->efd == -1Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3691 c->extended_usage != 2
c->extended_usage != 2Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3692 tcode != 1
tcode != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3693 logit("channel %d: bad ext data", c->self);-
3694 return
never executed: return 0;
0;
never executed: return 0;
0
3695 }-
3696 if ((
(r = sshpkt_ge...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0
(r = sshpkt_ge...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3697 error("%s: parse data: %s", __func__, ssh_err(r));-
3698 ssh_packet_disconnect(ssh, "Invalid extended_data message");-
3699 }
never executed: end of block
0
3700 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3045); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3701-
3702 if (data_len > c->local_window
data_len > c->local_windowDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3703 logit("channel %d: rcvd too much extended_data %zu, win %u",-
3704 c->self, data_len, c->local_window);-
3705 return
never executed: return 0;
0;
never executed: return 0;
0
3706 }-
3707 debug2("channel %d: rcvd ext data %zu", c->self, data_len);-
3708-
3709 if ((
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshbuf_put(c->extended, data, data_len)) != 0
(r = sshbuf_pu...ata_len)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3710 error("%s: append: %s", __func__, ssh_err(r));
never executed: error("%s: append: %s", __func__, ssh_err(r));
0
3711 c->local_window -= data_len;-
3712 return
never executed: return 0;
0;
never executed: return 0;
0
3713}-
3714-
3715int-
3716channel_input_ieof(int type, u_int32_t seq, struct ssh *ssh)-
3717{-
3718 Channel *c = channel_from_packet_id(ssh, __func__, "ieof");-
3719-
3720 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3065); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3721-
3722 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3723 return
never executed: return 0;
0;
never executed: return 0;
0
3724 chan_rcvd_ieof(ssh, c);-
3725-
3726-
3727 if (c->force_drain
c->force_drainDescription
TRUEnever evaluated
FALSEnever evaluated
&& c->istate == 0
c->istate == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3728 debug("channel %d: FORCE input drain", c->self);-
3729 c->istate = 1;-
3730 if (sshbuf_len(c->input) == 0
sshbuf_len(c->input) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3731 chan_ibuf_empty(ssh, c);
never executed: chan_ibuf_empty(ssh, c);
0
3732 }
never executed: end of block
0
3733 return
never executed: return 0;
0;
never executed: return 0;
0
3734}-
3735-
3736int-
3737channel_input_oclose(int type, u_int32_t seq, struct ssh *ssh)-
3738{-
3739 Channel *c = channel_from_packet_id(ssh, __func__, "oclose");-
3740-
3741 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3742 return
never executed: return 0;
0;
never executed: return 0;
0
3743 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3088); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3744 chan_rcvd_oclose(ssh, c);-
3745 return
never executed: return 0;
0;
never executed: return 0;
0
3746}-
3747-
3748int-
3749channel_input_open_confirmation(int type, u_int32_t seq, struct ssh *ssh)-
3750{-
3751 Channel *c = channel_from_packet_id(ssh, __func__, "open confirmation");-
3752 u_int32_t remote_window, remote_maxpacket;-
3753 int r;-
3754-
3755 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3756 return
never executed: return 0;
0;
never executed: return 0;
0
3757 if (c->type != 3
c->type != 3Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3758 packet_disconnect("Received open confirmation for "
never executed: packet_disconnect("Received open confirmation for " "non-opening channel %d.", c->self);
0
3759 "non-opening channel %d.", c->self);
never executed: packet_disconnect("Received open confirmation for " "non-opening channel %d.", c->self);
0
3760-
3761-
3762-
3763-
3764 if ((
(r = sshpkt_ge...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &c->remote_id)) != 0
(r = sshpkt_ge...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3765 (
(r = sshpkt_ge..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &remote_window)) != 0
(r = sshpkt_ge..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3766 (
(r = sshpkt_ge...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &remote_maxpacket)) != 0
(r = sshpkt_ge...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3767 error("%s: window/maxpacket: %s", __func__, ssh_err(r));-
3768 packet_disconnect("Invalid open confirmation message");-
3769 }
never executed: end of block
0
3770 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3115); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3771-
3772 c->have_remote_id = 1;-
3773 c->remote_window = remote_window;-
3774 c->remote_maxpacket = remote_maxpacket;-
3775 c->type = 4;-
3776 if (c->open_confirm
c->open_confirmDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3777 debug2("%s: channel %d: callback start", __func__, c->self);-
3778 c->open_confirm(ssh, c->self, 1, c->open_confirm_ctx);-
3779 debug2("%s: channel %d: callback done", __func__, c->self);-
3780 }
never executed: end of block
0
3781 debug2("channel %d: open confirm rwindow %u rmax %u", c->self,-
3782 c->remote_window, c->remote_maxpacket);-
3783 return
never executed: return 0;
0;
never executed: return 0;
0
3784}-
3785-
3786static char *-
3787reason2txt(int reason)-
3788{-
3789 switch (reason) {-
3790 case
never executed: case 1:
1:
never executed: case 1:
0
3791 return
never executed: return "administratively prohibited";
"administratively prohibited";
never executed: return "administratively prohibited";
0
3792 case
never executed: case 2:
2:
never executed: case 2:
0
3793 return
never executed: return "connect failed";
"connect failed";
never executed: return "connect failed";
0
3794 case
never executed: case 3:
3:
never executed: case 3:
0
3795 return
never executed: return "unknown channel type";
"unknown channel type";
never executed: return "unknown channel type";
0
3796 case
never executed: case 4:
4:
never executed: case 4:
0
3797 return
never executed: return "resource shortage";
"resource shortage";
never executed: return "resource shortage";
0
3798 }-
3799 return
never executed: return "unknown reason";
"unknown reason";
never executed: return "unknown reason";
0
3800}-
3801-
3802int-
3803channel_input_open_failure(int type, u_int32_t seq, struct ssh *ssh)-
3804{-
3805 Channel *c = channel_from_packet_id(ssh, __func__, "open failure");-
3806 u_int32_t reason;-
3807 char *msg = -
3808 ((void *)0)-
3809 ;-
3810 int r;-
3811-
3812 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3813 return
never executed: return 0;
0;
never executed: return 0;
0
3814 if (c->type != 3
c->type != 3Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3815 packet_disconnect("Received open failure for "
never executed: packet_disconnect("Received open failure for " "non-opening channel %d.", c->self);
0
3816 "non-opening channel %d.", c->self);
never executed: packet_disconnect("Received open failure for " "non-opening channel %d.", c->self);
0
3817 if ((
(r = sshpkt_ge...&reason)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &reason)) != 0
(r = sshpkt_ge...&reason)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3818 error("%s: reason: %s", __func__, ssh_err(r));-
3819 packet_disconnect("Invalid open failure message");-
3820 }
never executed: end of block
0
3821-
3822 if ((
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_cstring(ssh, &msg,
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3823 ((void *)0)
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3824 )) != 0
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
3825 (
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_string_direct(ssh,
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3826 ((void *)0)
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3827 ,
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3828 ((void *)0)
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3829 )) != 0
(r = sshpkt_ge...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3830 error("%s: message/lang: %s", __func__, ssh_err(r));-
3831 packet_disconnect("Invalid open failure message");-
3832 }
never executed: end of block
0
3833 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3170); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3834 logit("channel %d: open failed: %s%s%s", c->self,-
3835 reason2txt(reason), msg ? ": ": "", msg ? msg : "");-
3836 free(msg);-
3837 if (c->open_confirm
c->open_confirmDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3838 debug2("%s: channel %d: callback start", __func__, c->self);-
3839 c->open_confirm(ssh, c->self, 0, c->open_confirm_ctx);-
3840 debug2("%s: channel %d: callback done", __func__, c->self);-
3841 }
never executed: end of block
0
3842-
3843 chan_mark_dead(ssh, c);-
3844 return
never executed: return 0;
0;
never executed: return 0;
0
3845}-
3846-
3847int-
3848channel_input_window_adjust(int type, u_int32_t seq, struct ssh *ssh)-
3849{-
3850 int id = channel_parse_id(ssh, __func__, "window adjust");-
3851 Channel *c;-
3852 u_int32_t adjust;-
3853 u_int new_rwin;-
3854 int r;-
3855-
3856 if ((
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_lookup(ssh, id)) ==
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3857 ((void *)0)
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3858 ) {-
3859 logit("Received window adjust for non-open channel %d.", id);-
3860 return
never executed: return 0;
0;
never executed: return 0;
0
3861 }-
3862-
3863 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3864 return
never executed: return 0;
0;
never executed: return 0;
0
3865 if ((
(r = sshpkt_ge...&adjust)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_get_u32(ssh, &adjust)) != 0
(r = sshpkt_ge...&adjust)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3866 error("%s: adjust: %s", __func__, ssh_err(r));-
3867 packet_disconnect("Invalid window adjust message");-
3868 }
never executed: end of block
0
3869 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3204); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3870 debug2("channel %d: rcvd adjust %u", c->self, adjust);-
3871 if ((
(new_rwin = c-...>remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
new_rwin = c->remote_window + adjust) < c->remote_window
(new_rwin = c-...>remote_windowDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3872 fatal("channel %d: adjust %u overflows remote window %u",-
3873 c->self, adjust, c->remote_window);-
3874 }
never executed: end of block
0
3875 c->remote_window = new_rwin;-
3876 return
never executed: return 0;
0;
never executed: return 0;
0
3877}-
3878-
3879int-
3880channel_input_status_confirm(int type, u_int32_t seq, struct ssh *ssh)-
3881{-
3882 int id = channel_parse_id(ssh, __func__, "status confirm");-
3883 Channel *c;-
3884 struct channel_confirm *cc;-
3885-
3886-
3887 ssh_packet_set_alive_timeouts(active_state, (0));-
3888-
3889 debug2("%s: type %d id %d", __func__, type, id);-
3890-
3891 if ((
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
c = channel_lookup(ssh, id)) ==
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3892 ((void *)0)
(c = channel_l...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3893 ) {-
3894 logit("%s: %d: unknown", __func__, id);-
3895 return
never executed: return 0;
0;
never executed: return 0;
0
3896 }-
3897 if (channel_proxy_upstream(c, type, seq, ssh)
channel_proxy_...ype, seq, ssh)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3898 return
never executed: return 0;
0;
never executed: return 0;
0
3899 do { int _len = ssh_packet_remaining(ssh); if (_len > 0
_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 3232); ssh_packet_disconnect(ssh, "Packet integrity error."); }
never executed: end of block
} while (0);
0
3900 if ((
(cc = ((&c->st...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cc = ((&c->status_confirms)->tqh_first)) ==
(cc = ((&c->st...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3901 ((void *)0)
(cc = ((&c->st...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3902 )-
3903 return
never executed: return 0;
0;
never executed: return 0;
0
3904 cc->cb(ssh, type, c, cc->ctx);-
3905 do { if (((
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cc)->entry.tqe_next) !=
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3906((
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
void *)0)
((cc)->entry.t...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3907) (
never executed: (cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
never executed: (cc)->entry.tqe_next->entry.tqe_prev = (cc)->entry.tqe_prev;
else (
never executed: (&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
never executed: (&c->status_confirms)->tqh_last = (cc)->entry.tqe_prev;
*(cc)->entry.tqe_prev = (cc)->entry.tqe_next; ; ; } while (0);
0
3908 explicit_bzero(cc, sizeof(*cc));-
3909 free(cc);-
3910 return
never executed: return 0;
0;
never executed: return 0;
0
3911}-
3912-
3913-
3914-
3915void-
3916channel_set_af(struct ssh *ssh, int af)-
3917{-
3918 ssh->chanctxt->IPv4or6 = af;-
3919}
never executed: end of block
0
3920static const char *-
3921channel_fwd_bind_addr(const char *listen_addr, int *wildcardp,-
3922 int is_client, struct ForwardOptions *fwd_opts)-
3923{-
3924 const char *addr = -
3925 ((void *)0)-
3926 ;-
3927 int wildcard = 0;-
3928-
3929 if (listen_addr ==
listen_addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3930 ((void *)0)
listen_addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
3931 ) {-
3932-
3933 if (fwd_opts->gateway_ports
fwd_opts->gateway_portsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3934 wildcard = 1;
never executed: wildcard = 1;
0
3935 }
never executed: end of block
else if (fwd_opts->gateway_ports
fwd_opts->gateway_portsDescription
TRUEnever evaluated
FALSEnever evaluated
|| is_client
is_clientDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
3936 if (((
(datafellows & 0x01000000)Description
TRUEnever evaluated
FALSEnever evaluated
datafellows & 0x01000000)
(datafellows & 0x01000000)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
3937 -
3938 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3939 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3940 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3941 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3942 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3943 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3944 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3945 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3946 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3947 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3948 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3949 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3950 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3951 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3952 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3953 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3954 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3955 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3956 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3957 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3958 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3959 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3960 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3961 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3962 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3963 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3964 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3965 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3966 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3967 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3968 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3969 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3970 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3971 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3972 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3973 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3974 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3975 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3976 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3977 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3978 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3979 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3980 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3981 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3982 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3983 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3984 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
3985 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
3986 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3987 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3988 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3989 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3990 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3991 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3992 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3993 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3994 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3995 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3996 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3997 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3998 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
3999 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4000 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4001 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4002 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4003 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4004 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4005 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4006 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4007 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4008 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4009 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4010 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4011 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4012 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "0.0.0.0" ))[3] - __s2[3]);
0
4013 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "0.0.0.0" ))[3] - __s2[3]);
0
4014 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4015 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4016 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4017 "0.0.0.0"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4018 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4019 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& is_client == 0
is_client == 0Description
TRUEnever evaluated
FALSEnever evaluated
) ||
0
4020 *
*listen_addr == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
listen_addr == '\0'
*listen_addr == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
||
0
4021 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4022 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4023 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4024 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4025 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4026 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4027 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4028 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4029 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4030 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4031 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4032 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4033 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4034 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4035 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4036 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4037 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4038 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4039 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4040 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4041 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4042 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4043 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4044 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4045 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4046 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4047 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4048 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4049 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4050 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4051 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4052 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4053 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4054 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4055 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4056 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4057 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4058 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4059 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4060 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4061 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4062 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4063 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4064 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4065 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4066 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4067 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4068 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4069 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4070 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4071 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4072 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4073 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4074 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4075 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4076 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4077 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4078 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4079 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4080 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4081 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4082 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4083 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4084 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4085 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4086 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4087 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4088 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4089 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4090 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4091 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4092 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4093 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4094 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4095 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
4096 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
4097 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4098 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4099 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4100 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4101 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4102 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
4103 (!is_client
!is_clientDescription
TRUEnever evaluated
FALSEnever evaluated
&& fwd_opts->gateway_ports == 1
fwd_opts->gateway_ports == 1Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
4104 wildcard = 1;-
4105-
4106-
4107-
4108-
4109 if (*
*listen_addr != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
listen_addr != '\0'
*listen_addr != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
4110 -
4111 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4112 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4113 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4114 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4115 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4116 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4117 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4118 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4119 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4120 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4121 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4122 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4123 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4124 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4125 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4126 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4127 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4128 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4129 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4130 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4131 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4132 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4133 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4134 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4135 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4136 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4137 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4138 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4139 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4140 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4141 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4142 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4143 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4144 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4145 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4146 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4147 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4148 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4149 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4150 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4151 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4152 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4153 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4154 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4155 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4156 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4157 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4158 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4159 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4160 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4161 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4162 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4163 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4164 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4165 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4166 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4167 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4168 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4169 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4170 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4171 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4172 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4173 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4174 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4175 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4176 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4177 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4178 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4179 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4180 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4181 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4182 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4183 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4184 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4185 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "0.0.0.0" ))[3] - __s2[3]);
0
4186 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "0.0.0.0" ))[3] - __s2[3]);
0
4187 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4188 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4189 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4190 "0.0.0.0"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4191 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4192 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
4193 -
4194 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4195 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4196 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4197 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4198 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4199 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4200 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4201 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4202 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4203 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4204 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4205 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4206 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4207 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4208 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4209 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4210 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4211 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4212 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4213 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4214 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4215 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4216 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4217 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4218 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4219 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4220 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4221 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4222 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4223 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4224 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4225 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4226 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4227 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4228 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4229 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4230 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4231 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4232 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4233 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4234 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4235 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4236 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4237 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4238 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4239 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4240 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4241 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4242 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4243 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4244 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4245 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4246 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4247 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4248 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4249 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4250 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4251 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4252 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4253 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4254 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4255 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4256 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4257 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4258 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4259 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4260 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4261 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4262 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4263 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4264 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4265 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4266 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4267 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4268 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
4269 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
4270 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4271 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4272 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4273 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4274 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4275 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4276 packet_send_debug("Forwarding listen address "-
4277 "\"%s\" overridden by server "-
4278 "GatewayPorts", listen_addr);-
4279 }
never executed: end of block
0
4280 }
never executed: end of block
else if (
0
4281 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4282 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4283 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4284 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4285 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4286 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4287 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4288 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4289 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4290 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4291 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4292 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4293 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4294 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4295 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4296 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4297 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4298 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4299 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4300 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4301 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4302 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4303 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4304 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4305 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4306 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4307 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4308 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4309 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4310 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4311 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4312 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4313 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4314 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4315 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4316 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4317 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4318 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4319 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4320 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4321 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4322 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4323 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4324 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4325 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4326 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4327 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4328 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4329 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4330 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4331 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4332 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4333 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4334 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4335 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4336 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4337 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4338 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4339 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4340 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4341 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4342 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4343 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4344 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4345 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4346 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4347 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4348 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4349 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4350 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4351 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4352 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4353 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4354 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4355 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "localhost" ))[3] - __s2[3]);
0
4356 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "localhost" ))[3] - __s2[3]);
0
4357 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4358 listen_addr
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4359 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4360 "localhost"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4361 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4362 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
4363 -
4364 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4365 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4366 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4367 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4368 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4369 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4370 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4371 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4372 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4373 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4374 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4375 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4376 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4377 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4378 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4379 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4380 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4381 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4382 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4383 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4384 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4385 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4386 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4387 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4388 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4389 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4390 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4391 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4392 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4393 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4394 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4395 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4396 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4397 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4398 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4399 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4400 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4401 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4402 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4403 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4404 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4405 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4406 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4407 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4408 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4409 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4410 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4411 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4412 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4413 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4414 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4415 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4416 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4417 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4418 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4419 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4420 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4421 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4422 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4423 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4424 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4425 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4426 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4427 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4428 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4429 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4430 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4431 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4432 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4433 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4434 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4435 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4436 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4437 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4438 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "127.0.0.1" ))[3] - __s2[3]);
0
4439 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "127.0.0.1" ))[3] - __s2[3]);
0
4440 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4441 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4442 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4443 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4444 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4445 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
4446 -
4447 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4448 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4449 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4450 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4451 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4452 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4453 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4454 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4455 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4456 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4457 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4458 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4459 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4460 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4461 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4462 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4463 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4464 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4465 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4466 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4467 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4468 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4469 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4470 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4471 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4472 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4473 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4474 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4475 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4476 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4477 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4478 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4479 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4480 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4481 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4482 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4483 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4484 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4485 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4486 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4487 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4488 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4489 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4490 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4491 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4492 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4493 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4494 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4495 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4496 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4497 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4498 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4499 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4500 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4501 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4502 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4503 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4504 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4505 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4506 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4507 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4508 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4509 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4510 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4511 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4512 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4513 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4514 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4515 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4516 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4517 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4518 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4519 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4520 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4521 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "::1" ))[3] - __s2[3]);
0
4522 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "::1" ))[3] - __s2[3]);
0
4523 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4524 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4525 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4526 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4527 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4528 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4529-
4530 addr = listen_addr;-
4531 }
never executed: end of block
0
4532 }
never executed: end of block
else if (
0
4533 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4534 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4535 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4536 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4537 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4538 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4539 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4540 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4541 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4542 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4543 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4544 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4545 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4546 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4547 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4548 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4549 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4550 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4551 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4552 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4553 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4554 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4555 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4556 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4557 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4558 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4559 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4560 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4561 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4562 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4563 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4564 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4565 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4566 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4567 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4568 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4569 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4570 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4571 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4572 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4573 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4574 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4575 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4576 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4577 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4578 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4579 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4580 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4581 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4582 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4583 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4584 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4585 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4586 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4587 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4588 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4589 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4590 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4591 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4592 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4593 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4594 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4595 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4596 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4597 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4598 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4599 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4600 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4601 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4602 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4603 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4604 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4605 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4606 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4607 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "127.0.0.1" ))[3] - __s2[3]);
0
4608 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "127.0.0.1" ))[3] - __s2[3]);
0
4609 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4610 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4611 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4612 "127.0.0.1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4613 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4614 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
4615 -
4616 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4617 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4618 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4619 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4620 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4621 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4622 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4623 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4624 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4625 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4626 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4627 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4628 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4629 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4630 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4631 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4632 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4633 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4634 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4635 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4636 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4637 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4638 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4639 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4640 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4641 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4642 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4643 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4644 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4645 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4646 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4647 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4648 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4649 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4650 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4651 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4652 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4653 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4654 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4655 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4656 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4657 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4658 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4659 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4660 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4661 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4662 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4663 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_addr ))[3] - __s2[3]);
0
4664 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4665 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4666 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4667 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4668 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4669 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4670 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4671 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4672 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4673 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4674 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4675 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4676 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4677 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4678 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4679 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4680 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4681 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4682 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4683 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4684 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4685 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4686 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4687 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4688 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4689 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4690 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "::1" ))[3] - __s2[3]);
0
4691 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "::1" ))[3] - __s2[3]);
0
4692 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4693 listen_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4694 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4695 "::1"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4696 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4697 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4698-
4699-
4700-
4701-
4702-
4703 addr = listen_addr;-
4704 }
never executed: end of block
0
4705 if (wildcardp !=
wildcardp != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4706 ((void *)0)
wildcardp != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4707 )-
4708 *
never executed: *wildcardp = wildcard;
wildcardp = wildcard;
never executed: *wildcardp = wildcard;
0
4709 return
never executed: return addr;
addr;
never executed: return addr;
0
4710}-
4711-
4712static int-
4713channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type,-
4714 struct Forward *fwd, int *allocated_listen_port,-
4715 struct ForwardOptions *fwd_opts)-
4716{-
4717 Channel *c;-
4718 int sock, r, success = 0, wildcard = 0, is_client;-
4719 struct addrinfo hints, *ai, *aitop;-
4720 const char *host, *addr;-
4721 char ntop[-
4722 1025-
4723 ], strport[-
4724 32-
4725 ];-
4726 in_port_t *lport_p;-
4727-
4728 is_client = (type == 2);-
4729-
4730 if (is_client
is_clientDescription
TRUEnever evaluated
FALSEnever evaluated
&& fwd->connect_path !=
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4731 ((void *)0)
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4732 ) {-
4733 host = fwd->connect_path;-
4734 }
never executed: end of block
else {
0
4735 host = (
(type == 11)Description
TRUEnever evaluated
FALSEnever evaluated
type == 11)
(type == 11)Description
TRUEnever evaluated
FALSEnever evaluated
?
0
4736 fwd->listen_host : fwd->connect_host;-
4737 if (host ==
host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4738 ((void *)0)
host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4739 ) {-
4740 error("No forward host name.");-
4741 return
never executed: return 0;
0;
never executed: return 0;
0
4742 }-
4743 if (strlen(host) >=
strlen(host) >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
4744 1025
strlen(host) >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
4745 ) {-
4746 error("Forward host name too long.");-
4747 return
never executed: return 0;
0;
never executed: return 0;
0
4748 }-
4749 }
never executed: end of block
0
4750-
4751-
4752 addr = channel_fwd_bind_addr(fwd->listen_host, &wildcard,-
4753 is_client, fwd_opts);-
4754 debug3("%s: type %d wildcard %d addr %s", __func__,-
4755 type, wildcard, (addr == -
4756 ((void *)0)-
4757 ) ? "NULL" : addr);-
4758-
4759-
4760-
4761-
4762-
4763 memset(&hints, 0, sizeof(hints));-
4764 hints.ai_family = ssh->chanctxt->IPv4or6;-
4765 hints.ai_flags = wildcard
wildcardDescription
TRUEnever evaluated
FALSEnever evaluated
?
0
4766 0x0001 -
4767 : 0;-
4768 hints.ai_socktype = -
4769 SOCK_STREAM-
4770 ;-
4771 snprintf(strport, sizeof strport, "%d", fwd->listen_port);-
4772 if ((
(r = getaddrin... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = getaddrinfo(addr, strport, &hints, &aitop)) != 0
(r = getaddrin... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4773 if (addr ==
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4774 ((void *)0)
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4775 ) {-
4776-
4777 packet_disconnect("getaddrinfo: fatal error: %s",-
4778 ssh_gai_strerror(r));-
4779 }
never executed: end of block
else {
0
4780 error("%s: getaddrinfo(%.64s): %s", __func__, addr,-
4781 ssh_gai_strerror(r));-
4782 }
never executed: end of block
0
4783 return
never executed: return 0;
0;
never executed: return 0;
0
4784 }-
4785 if (allocated_listen_port !=
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4786 ((void *)0)
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4787 )-
4788 *
never executed: *allocated_listen_port = 0;
allocated_listen_port = 0;
never executed: *allocated_listen_port = 0;
0
4789 for (ai = aitop; ai
aiDescription
TRUEnever evaluated
FALSEnever evaluated
; ai = ai->ai_next) {
0
4790 switch (ai->ai_family) {-
4791 case
never executed: case 2 :
never executed: case 2 :
0
4792 2
never executed: case 2 :
0
4793 :
never executed: case 2 :
0
4794 lport_p = &((struct sockaddr_in *)ai->ai_addr)->-
4795 sin_port;-
4796 break;
never executed: break;
0
4797 case
never executed: case 10 :
never executed: case 10 :
0
4798 10
never executed: case 10 :
0
4799 :
never executed: case 10 :
0
4800 lport_p = &((struct sockaddr_in6 *)ai->ai_addr)->-
4801 sin6_port;-
4802 break;
never executed: break;
0
4803 default
never executed: default:
:
never executed: default:
0
4804 continue;
never executed: continue;
0
4805 }-
4806-
4807-
4808-
4809-
4810 if (type == 11
type == 11Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
4811 fwd->listen_port == 0
fwd->listen_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& allocated_listen_port !=
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4812 ((void *)0)
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4813 &&-
4814 *
*allocated_listen_port > 0Description
TRUEnever evaluated
FALSEnever evaluated
allocated_listen_port > 0
*allocated_listen_port > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
4815 *
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
lport_p =
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
0
4816 (__extension__ ({ unsigned short int __v, __x = (unsigned short int) (
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
0
4817 *allocated_listen_port
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
0
4818 ); if (__builtin_constant_p (__x)
__builtin_constant_p (__x)Description
TRUEnever evaluated
FALSEnever evaluated
) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
never executed: __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)));
else __asm__
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
never executed: __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc");
__v; }))
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
0
4819 ;
never executed: *lport_p = (__extension__ ({ unsigned short int __v, __x = (unsigned short int) ( *allocated_listen_port ); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ;
0
4820-
4821 if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop),
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4822 strport, sizeof(strport),
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4823
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4824 1
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4825 |
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4826 2
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
4827 ) != 0
getnameinfo(ai..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4828 error("%s: getnameinfo failed", __func__);-
4829 continue;
never executed: continue;
0
4830 }-
4831-
4832 sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);-
4833 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4834-
4835 verbose("socket [%s]:%s: %.100s", ntop, strport,-
4836 strerror(-
4837 (*__errno_location ())-
4838 ));-
4839 continue;
never executed: continue;
0
4840 }-
4841-
4842 set_reuseaddr(sock);-
4843 if (ai->ai_family ==
ai->ai_family == 10Description
TRUEnever evaluated
FALSEnever evaluated
0
4844 10
ai->ai_family == 10Description
TRUEnever evaluated
FALSEnever evaluated
0
4845 )-
4846 sock_set_v6only(sock);
never executed: sock_set_v6only(sock);
0
4847-
4848 debug("Local forwarding listening on %s port %s.",-
4849 ntop, strport);-
4850-
4851-
4852 if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0
bind(sock, ai-...i_addrlen) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4853-
4854-
4855-
4856-
4857 if (!ai->ai_next
!ai->ai_nextDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
4858 error("bind [%s]:%s: %.100s",
never executed: error("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4859 ntop, strport, strerror(
never executed: error("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4860 (*__errno_location ())
never executed: error("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4861 ));
never executed: error("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4862 else-
4863 verbose("bind [%s]:%s: %.100s",
never executed: verbose("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4864 ntop, strport, strerror(
never executed: verbose("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4865 (*__errno_location ())
never executed: verbose("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4866 ));
never executed: verbose("bind [%s]:%s: %.100s", ntop, strport, strerror( (*__errno_location ()) ));
0
4867-
4868 close(sock);-
4869 continue;
never executed: continue;
0
4870 }-
4871-
4872 if (listen(sock, 128) < 0
listen(sock, 128) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4873 error("listen: %.100s", strerror(-
4874 (*__errno_location ())-
4875 ));-
4876 error("listen [%s]:%s: %.100s", ntop, strport,-
4877 strerror(-
4878 (*__errno_location ())-
4879 ));-
4880 close(sock);-
4881 continue;
never executed: continue;
0
4882 }-
4883-
4884-
4885-
4886-
4887-
4888 if (type == 11
type == 11Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
4889 fwd->listen_port == 0
fwd->listen_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
4890 allocated_listen_port !=
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4891 ((void *)0)
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4892 &&-
4893 *
*allocated_listen_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
allocated_listen_port == 0
*allocated_listen_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4894 *allocated_listen_port = get_local_port(sock);-
4895 debug("Allocated listen port %d",-
4896 *allocated_listen_port);-
4897 }
never executed: end of block
0
4898-
4899-
4900 c = channel_new(ssh, "port listener", type, sock, sock, -1,-
4901 (64*(32*1024)), (32*1024),-
4902 0, "port listener", 1);-
4903 c->path = xstrdup(host);-
4904 c->host_port = fwd->connect_port;-
4905 c->listening_addr = addr ==
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4906 ((void *)0)
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4907 ? -
4908 ((void *)0) -
4909 : xstrdup(addr);-
4910 if (fwd->listen_port == 0
fwd->listen_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& allocated_listen_port !=
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4911 ((void *)0)
allocated_list...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4912 &&-
4913 !(datafellows & 0x08000000)
!(datafellows & 0x08000000)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
4914 c->listening_port = *allocated_listen_port;
never executed: c->listening_port = *allocated_listen_port;
0
4915 else-
4916 c->listening_port = fwd->listen_port;
never executed: c->listening_port = fwd->listen_port;
0
4917 success = 1;-
4918 }
never executed: end of block
0
4919 if (success == 0
success == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
4920 error("%s: cannot listen to port: %d", __func__,
never executed: error("%s: cannot listen to port: %d", __func__, fwd->listen_port);
0
4921 fwd->listen_port);
never executed: error("%s: cannot listen to port: %d", __func__, fwd->listen_port);
0
4922 freeaddrinfo(aitop);-
4923 return
never executed: return success;
success;
never executed: return success;
0
4924}-
4925-
4926static int-
4927channel_setup_fwd_listener_streamlocal(struct ssh *ssh, int type,-
4928 struct Forward *fwd, struct ForwardOptions *fwd_opts)-
4929{-
4930 struct sockaddr_un sunaddr;-
4931 const char *path;-
4932 Channel *c;-
4933 int port, sock;-
4934 mode_t omask;-
4935-
4936 switch (type) {-
4937 case
never executed: case 18:
18:
never executed: case 18:
0
4938 if (fwd->connect_path !=
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4939 ((void *)0)
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4940 ) {-
4941 if (strlen(fwd->connect_path) > sizeof(sunaddr.sun_path)
strlen(fwd->co...addr.sun_path)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4942 error("Local connecting path too long: %s",-
4943 fwd->connect_path);-
4944 return
never executed: return 0;
0;
never executed: return 0;
0
4945 }-
4946 path = fwd->connect_path;-
4947 port = -2;-
4948 }
never executed: end of block
else {
0
4949 if (fwd->connect_host ==
fwd->connect_h...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4950 ((void *)0)
fwd->connect_h...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4951 ) {-
4952 error("No forward host name.");-
4953 return
never executed: return 0;
0;
never executed: return 0;
0
4954 }-
4955 if (strlen(fwd->connect_host) >=
strlen(fwd->co..._host) >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
4956 1025
strlen(fwd->co..._host) >= 1025Description
TRUEnever evaluated
FALSEnever evaluated
0
4957 ) {-
4958 error("Forward host name too long.");-
4959 return
never executed: return 0;
0;
never executed: return 0;
0
4960 }-
4961 path = fwd->connect_host;-
4962 port = fwd->connect_port;-
4963 }
never executed: end of block
0
4964 break;
never executed: break;
0
4965 case
never executed: case 19:
19:
never executed: case 19:
0
4966 path = fwd->listen_path;-
4967 port = -2;-
4968 break;
never executed: break;
0
4969 default
never executed: default:
:
never executed: default:
0
4970 error("%s: unexpected channel type %d", __func__, type);-
4971 return
never executed: return 0;
0;
never executed: return 0;
0
4972 }-
4973-
4974 if (fwd->listen_path ==
fwd->listen_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4975 ((void *)0)
fwd->listen_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
4976 ) {-
4977 error("No forward path name.");-
4978 return
never executed: return 0;
0;
never executed: return 0;
0
4979 }-
4980 if (strlen(fwd->listen_path) > sizeof(sunaddr.sun_path)
strlen(fwd->li...addr.sun_path)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
4981 error("Local listening path too long: %s", fwd->listen_path);-
4982 return
never executed: return 0;
0;
never executed: return 0;
0
4983 }-
4984-
4985 debug3("%s: type %d path %s", __func__, type, fwd->listen_path);-
4986-
4987-
4988 omask = umask(fwd_opts->streamlocal_bind_mask);-
4989 sock = unix_listener(fwd->listen_path, 128,-
4990 fwd_opts->streamlocal_bind_unlink);-
4991 umask(omask);-
4992 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
4993 return
never executed: return 0;
0;
never executed: return 0;
0
4994-
4995 debug("Local forwarding listening on path %s.", fwd->listen_path);-
4996-
4997-
4998 c = channel_new(ssh, "unix listener", type, sock, sock, -1,-
4999 (64*(32*1024)), (32*1024),-
5000 0, "unix listener", 1);-
5001 c->path = xstrdup(path);-
5002 c->host_port = port;-
5003 c->listening_port = -2;-
5004 c->listening_addr = xstrdup(fwd->listen_path);-
5005 return
never executed: return 1;
1;
never executed: return 1;
0
5006}-
5007-
5008static int-
5009channel_cancel_rport_listener_tcpip(struct ssh *ssh,-
5010 const char *host, u_short port)-
5011{-
5012 u_int i;-
5013 int found = 0;-
5014-
5015 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5016 Channel *c = ssh->chanctxt->channels[i];-
5017 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5018 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5019 || c->type != 11
c->type != 11Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5020 continue;
never executed: continue;
0
5021 if (-
5022 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5023 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5024 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5025 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5026 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5027 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5028 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5029 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5030 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5031 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5032 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5033 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5034 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5035 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5036 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5037 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5038 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5039 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5040 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5041 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5042 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5043 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5044 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5045 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5046 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5047 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5048 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5049 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5050 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5051 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5052 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5053 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5054 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5055 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5056 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5057 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5058 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5059 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5060 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5061 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5062 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5063 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5064 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5065 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5066 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5067 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5068 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( c->path ))[3] - __s2[3]);
0
5069 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( c->path ))[3] - __s2[3]);
0
5070 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5071 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5072 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5073 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5074 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5075 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5076 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5077 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5078 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5079 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5080 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5081 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5082 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5083 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5084 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5085 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5086 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5087 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5088 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5089 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5090 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5091 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5092 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5093 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5094 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5095 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5096 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( host ))[3] - __s2[3]);
0
5097 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( host ))[3] - __s2[3]);
0
5098 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5099 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5100 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5101 host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5102 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5103 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& c->listening_port == port
c->listening_port == portDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
5104 debug2("%s: close channel %d", __func__, i);-
5105 channel_free(ssh, c);-
5106 found = 1;-
5107 }
never executed: end of block
0
5108 }
never executed: end of block
0
5109-
5110 return
never executed: return found;
found;
never executed: return found;
0
5111}-
5112-
5113static int-
5114channel_cancel_rport_listener_streamlocal(struct ssh *ssh, const char *path)-
5115{-
5116 u_int i;-
5117 int found = 0;-
5118-
5119 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5120 Channel *c = ssh->chanctxt->channels[i];-
5121 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5122 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5123 || c->type != 19
c->type != 19Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5124 continue;
never executed: continue;
0
5125 if (c->path ==
c->path == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5126 ((void *)0)
c->path == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5127 )-
5128 continue;
never executed: continue;
0
5129 if (-
5130 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5131 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5132 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5133 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5134 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5135 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5136 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5137 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5138 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5139 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5140 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5141 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5142 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5143 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5144 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5145 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5146 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5147 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5148 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5149 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5150 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5151 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5152 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5153 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5154 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5155 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5156 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5157 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5158 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5159 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5160 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5161 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5162 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5163 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5164 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5165 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5166 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5167 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5168 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5169 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5170 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5171 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5172 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5173 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5174 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5175 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5176 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( c->path ))[3] - __s2[3]);
0
5177 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( c->path ))[3] - __s2[3]);
0
5178 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5179 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5180 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5181 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5182 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5183 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5184 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5185 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5186 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5187 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5188 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5189 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5190 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5191 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5192 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5193 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5194 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5195 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5196 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5197 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5198 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5199 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5200 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5201 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5202 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5203 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5204 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]);
0
5205 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]);
0
5206 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5207 c->path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5208 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5209 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5210 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5211 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5212 debug2("%s: close channel %d", __func__, i);-
5213 channel_free(ssh, c);-
5214 found = 1;-
5215 }
never executed: end of block
0
5216 }
never executed: end of block
0
5217-
5218 return
never executed: return found;
found;
never executed: return found;
0
5219}-
5220-
5221int-
5222channel_cancel_rport_listener(struct ssh *ssh, struct Forward *fwd)-
5223{-
5224 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5225 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5226 ) {-
5227 return
never executed: return channel_cancel_rport_listener_streamlocal(ssh, fwd->listen_path);
channel_cancel_rport_listener_streamlocal(ssh,
never executed: return channel_cancel_rport_listener_streamlocal(ssh, fwd->listen_path);
0
5228 fwd->listen_path);
never executed: return channel_cancel_rport_listener_streamlocal(ssh, fwd->listen_path);
0
5229 } else {-
5230 return
never executed: return channel_cancel_rport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port);
channel_cancel_rport_listener_tcpip(ssh,
never executed: return channel_cancel_rport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port);
0
5231 fwd->listen_host, fwd->listen_port);
never executed: return channel_cancel_rport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port);
0
5232 }-
5233}-
5234-
5235static int-
5236channel_cancel_lport_listener_tcpip(struct ssh *ssh,-
5237 const char *lhost, u_short lport, int cport,-
5238 struct ForwardOptions *fwd_opts)-
5239{-
5240 u_int i;-
5241 int found = 0;-
5242 const char *addr = channel_fwd_bind_addr(lhost, -
5243 ((void *)0)-
5244 , 1, fwd_opts);-
5245-
5246 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5247 Channel *c = ssh->chanctxt->channels[i];-
5248 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5249 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5250 || c->type != 2
c->type != 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5251 continue;
never executed: continue;
0
5252 if (c->listening_port != lport
c->listening_port != lportDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
5253 continue;
never executed: continue;
0
5254 if (cport == -1
cport == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5255-
5256 if (c->host_port == 0
c->host_port == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5257 continue;
never executed: continue;
0
5258 }
never executed: end of block
else {
0
5259 if (c->host_port != cport
c->host_port != cportDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
5260 continue;
never executed: continue;
0
5261 }
never executed: end of block
0
5262 if ((c->listening_addr ==
c->listening_a...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5263 ((void *)0)
c->listening_a...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5264 && addr !=
addr != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5265 ((void *)0)
addr != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5266 ) ||-
5267 (c->listening_addr !=
c->listening_a...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5268 ((void *)0)
c->listening_a...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5269 && addr ==
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5270 ((void *)0)
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5271 ))-
5272 continue;
never executed: continue;
0
5273 if (addr ==
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5274 ((void *)0)
addr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5275 || -
5276 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5277 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5278 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5279 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5280 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5281 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5282 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5283 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5284 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5285 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5286 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5287 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5288 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5289 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5290 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5291 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5292 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5293 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5294 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5295 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5296 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5297 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5298 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5299 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5300 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5301 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5302 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5303 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5304 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5305 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5306 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5307 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5308 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5309 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5310 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5311 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5312 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5313 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5314 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5315 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5316 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5317 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5318 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5319 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5320 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5321 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5322 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( c->listening_addr ))[3] - __s2[3]);
0
5323 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( c->listening_addr ))[3] - __s2[3]);
0
5324 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5325 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5326 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5327 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5328 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5329 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5330 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5331 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5332 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5333 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5334 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5335 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5336 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5337 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5338 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5339 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5340 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5341 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5342 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5343 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5344 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5345 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5346 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5347 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5348 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5349 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5350 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( addr ))[3] - __s2[3]);
0
5351 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( addr ))[3] - __s2[3]);
0
5352 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5353 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5354 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5355 addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5356 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5357 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5358 debug2("%s: close channel %d", __func__, i);-
5359 channel_free(ssh, c);-
5360 found = 1;-
5361 }
never executed: end of block
0
5362 }
never executed: end of block
0
5363-
5364 return
never executed: return found;
found;
never executed: return found;
0
5365}-
5366-
5367static int-
5368channel_cancel_lport_listener_streamlocal(struct ssh *ssh, const char *path)-
5369{-
5370 u_int i;-
5371 int found = 0;-
5372-
5373 if (path ==
path == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5374 ((void *)0)
path == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5375 ) {-
5376 error("%s: no path specified.", __func__);-
5377 return
never executed: return 0;
0;
never executed: return 0;
0
5378 }-
5379-
5380 for (i = 0; i < ssh->chanctxt->channels_alloc
i < ssh->chanc...channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5381 Channel *c = ssh->chanctxt->channels[i];-
5382 if (c ==
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5383 ((void *)0)
c == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5384 || c->type != 18
c->type != 18Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5385 continue;
never executed: continue;
0
5386 if (c->listening_addr ==
c->listening_a...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5387 ((void *)0)
c->listening_a...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5388 )-
5389 continue;
never executed: continue;
0
5390 if (-
5391 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5392 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5393 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5394 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5395 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5396 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5397 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5398 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5399 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5400 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5401 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5402 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5403 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5404 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5405 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5406 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5407 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5408 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5409 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5410 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5411 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5412 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5413 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5414 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5415 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5416 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5417 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5418 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5419 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5420 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5421 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5422 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5423 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5424 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5425 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5426 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5427 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5428 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5429 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5430 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5431 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5432 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5433 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5434 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5435 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5436 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5437 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( c->listening_addr ))[3] - __s2[3]);
0
5438 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( c->listening_addr ))[3] - __s2[3]);
0
5439 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5440 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5441 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5442 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5443 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5444 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5445 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5446 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5447 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5448 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5449 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5450 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5451 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5452 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5453 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5454 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5455 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5456 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5457 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5458 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5459 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5460 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5461 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5462 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5463 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5464 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5465 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]);
0
5466 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]);
0
5467 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5468 c->listening_addr
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5469 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5470 path
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5471 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5472 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5473 debug2("%s: close channel %d", __func__, i);-
5474 channel_free(ssh, c);-
5475 found = 1;-
5476 }
never executed: end of block
0
5477 }
never executed: end of block
0
5478-
5479 return
never executed: return found;
found;
never executed: return found;
0
5480}-
5481-
5482int-
5483channel_cancel_lport_listener(struct ssh *ssh,-
5484 struct Forward *fwd, int cport, struct ForwardOptions *fwd_opts)-
5485{-
5486 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5487 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5488 ) {-
5489 return
never executed: return channel_cancel_lport_listener_streamlocal(ssh, fwd->listen_path);
channel_cancel_lport_listener_streamlocal(ssh,
never executed: return channel_cancel_lport_listener_streamlocal(ssh, fwd->listen_path);
0
5490 fwd->listen_path);
never executed: return channel_cancel_lport_listener_streamlocal(ssh, fwd->listen_path);
0
5491 } else {-
5492 return
never executed: return channel_cancel_lport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port, cport, fwd_opts);
channel_cancel_lport_listener_tcpip(ssh,
never executed: return channel_cancel_lport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port, cport, fwd_opts);
0
5493 fwd->listen_host, fwd->listen_port, cport, fwd_opts);
never executed: return channel_cancel_lport_listener_tcpip(ssh, fwd->listen_host, fwd->listen_port, cport, fwd_opts);
0
5494 }-
5495}-
5496-
5497-
5498int-
5499channel_setup_local_fwd_listener(struct ssh *ssh,-
5500 struct Forward *fwd, struct ForwardOptions *fwd_opts)-
5501{-
5502 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5503 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5504 ) {-
5505 return
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 18, fwd, fwd_opts);
channel_setup_fwd_listener_streamlocal(ssh,
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 18, fwd, fwd_opts);
0
5506 18, fwd, fwd_opts);
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 18, fwd, fwd_opts);
0
5507 } else {-
5508 return
never executed: return channel_setup_fwd_listener_tcpip(ssh, 2, fwd, ((void *)0) , fwd_opts);
channel_setup_fwd_listener_tcpip(ssh,
never executed: return channel_setup_fwd_listener_tcpip(ssh, 2, fwd, ((void *)0) , fwd_opts);
0
5509 2, fwd,
never executed: return channel_setup_fwd_listener_tcpip(ssh, 2, fwd, ((void *)0) , fwd_opts);
0
5510 ((void *)0)
never executed: return channel_setup_fwd_listener_tcpip(ssh, 2, fwd, ((void *)0) , fwd_opts);
0
5511 , fwd_opts);
never executed: return channel_setup_fwd_listener_tcpip(ssh, 2, fwd, ((void *)0) , fwd_opts);
0
5512 }-
5513}-
5514-
5515-
5516static int-
5517remote_open_match(struct permission *allowed_open, struct Forward *fwd)-
5518{-
5519 int ret;-
5520 char *lhost;-
5521-
5522-
5523 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5524 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5525 )-
5526 return
never executed: return 1;
1;
never executed: return 1;
0
5527-
5528 if (fwd->listen_host ==
fwd->listen_ho...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5529 ((void *)0)
fwd->listen_ho...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5530 || allowed_open->listen_host ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5531 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5532 )-
5533 return
never executed: return 0;
0;
never executed: return 0;
0
5534-
5535 if (allowed_open->listen_port != 0
allowed_open->listen_port != 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
5536 allowed_open->listen_port != fwd->listen_port
allowed_open->...d->listen_portDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
5537 return
never executed: return 0;
0;
never executed: return 0;
0
5538-
5539-
5540 lhost = xstrdup(fwd->listen_host);-
5541 lowercase(lhost);-
5542 ret = match_pattern(lhost, allowed_open->listen_host);-
5543 free(lhost);-
5544-
5545 return
never executed: return ret;
ret;
never executed: return ret;
0
5546}-
5547-
5548-
5549static int-
5550check_rfwd_permission(struct ssh *ssh, struct Forward *fwd)-
5551{-
5552 struct ssh_channels *sc = ssh->chanctxt;-
5553 struct permission_set *pset = &sc->remote_perms;-
5554 u_int i, permit, permit_adm = 1;-
5555 struct permission *perm;-
5556-
5557-
5558-
5559 permit = pset->all_permitted;-
5560 if (!permit
!permitDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
5561 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5562 perm = &pset->permitted_user[i];-
5563 if (remote_open_match(perm, fwd)
remote_open_match(perm, fwd)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5564 permit = 1;-
5565 break;
never executed: break;
0
5566 }-
5567 }
never executed: end of block
0
5568 }
never executed: end of block
0
5569-
5570 if (pset->num_permitted_admin > 0
pset->num_permitted_admin > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5571 permit_adm = 0;-
5572 for (i = 0; i < pset->num_permitted_admin
i < pset->num_permitted_adminDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
5573 perm = &pset->permitted_admin[i];-
5574 if (remote_open_match(perm, fwd)
remote_open_match(perm, fwd)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5575 permit_adm = 1;-
5576 break;
never executed: break;
0
5577 }-
5578 }
never executed: end of block
0
5579 }
never executed: end of block
0
5580-
5581 return
never executed: return permit && permit_adm;
permit
permitDescription
TRUEnever evaluated
FALSEnever evaluated
&& permit_adm
permit_admDescription
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return permit && permit_adm;
0
5582}-
5583-
5584-
5585int-
5586channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd,-
5587 int *allocated_listen_port, struct ForwardOptions *fwd_opts)-
5588{-
5589 if (!check_rfwd_permission(ssh, fwd)
!check_rfwd_pe...sion(ssh, fwd)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5590 packet_send_debug("port forwarding refused");-
5591 return
never executed: return 0;
0;
never executed: return 0;
0
5592 }-
5593 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5594 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5595 ) {-
5596 return
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 19, fwd, fwd_opts);
channel_setup_fwd_listener_streamlocal(ssh,
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 19, fwd, fwd_opts);
0
5597 19, fwd, fwd_opts);
never executed: return channel_setup_fwd_listener_streamlocal(ssh, 19, fwd, fwd_opts);
0
5598 } else {-
5599 return
never executed: return channel_setup_fwd_listener_tcpip(ssh, 11, fwd, allocated_listen_port, fwd_opts);
channel_setup_fwd_listener_tcpip(ssh,
never executed: return channel_setup_fwd_listener_tcpip(ssh, 11, fwd, allocated_listen_port, fwd_opts);
0
5600 11, fwd, allocated_listen_port,
never executed: return channel_setup_fwd_listener_tcpip(ssh, 11, fwd, allocated_listen_port, fwd_opts);
0
5601 fwd_opts);
never executed: return channel_setup_fwd_listener_tcpip(ssh, 11, fwd, allocated_listen_port, fwd_opts);
0
5602 }-
5603}-
5604-
5605-
5606-
5607-
5608-
5609static const char *-
5610channel_rfwd_bind_host(const char *listen_host)-
5611{-
5612 if (listen_host ==
listen_host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5613 ((void *)0)
listen_host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5614 ) {-
5615 return
never executed: return "localhost";
"localhost";
never executed: return "localhost";
0
5616 } else if (*
*listen_host == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
listen_host == '\0'
*listen_host == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5617 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5618 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5619 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5620 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5621 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5622 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5623 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5624 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5625 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5626 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5627 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5628 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5629 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5630 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5631 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5632 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5633 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5634 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5635 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5636 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5637 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5638 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5639 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5640 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5641 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5642 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5643 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5644 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5645 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5646 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5647 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5648 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5649 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5650 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5651 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5652 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5653 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5654 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5655 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5656 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5657 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5658 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5659 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5660 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5661 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5662 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5663 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( listen_host ))[3] - __s2[3]);
0
5664 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( listen_host ))[3] - __s2[3]);
0
5665 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5666 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5667 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5668 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5669 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5670 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5671 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5672 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5673 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5674 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5675 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5676 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5677 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5678 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5679 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5680 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5681 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5682 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5683 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5684 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5685 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5686 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5687 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5688 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5689 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5690 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5691 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
5692 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
5693 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5694 listen_host
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5695 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5696 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5697 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5698 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
5699 return
never executed: return "";
"";
never executed: return "";
0
5700 } else-
5701 return
never executed: return listen_host;
listen_host;
never executed: return listen_host;
0
5702}-
5703-
5704-
5705-
5706-
5707-
5708-
5709-
5710int-
5711channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd)-
5712{-
5713 int r, success = 0, idx = -1;-
5714 char *host_to_connect, *listen_host, *listen_path;-
5715 int port_to_connect, listen_port;-
5716-
5717-
5718 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5719 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5720 ) {-
5721 if ((
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 80)) != 0
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5722 (
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh,
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5723 "streamlocal-forward@openssh.com")) != 0
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5724 (
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 1)) != 0
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5725 (
(r = sshpkt_pu...en_path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, fwd->listen_path)) != 0
(r = sshpkt_pu...en_path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5726 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5727 (
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_packet_write_wait(ssh)) != 0
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5728 fatal("%s: request streamlocal: %s",
never executed: fatal("%s: request streamlocal: %s", __func__, ssh_err(r));
0
5729 __func__, ssh_err(r));
never executed: fatal("%s: request streamlocal: %s", __func__, ssh_err(r));
0
5730 }
never executed: end of block
else {
0
5731 if ((
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 80)) != 0
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5732 (
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, "tcpip-forward")) != 0
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5733 (
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 1)) != 0
(r = sshpkt_pu...(ssh, 1)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5734 (
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh,
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5735 channel_rfwd_bind_host(fwd->listen_host))) != 0
(r = sshpkt_pu...n_host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5736 (
(r = sshpkt_pu...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, fwd->listen_port)) != 0
(r = sshpkt_pu...en_port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5737 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
5738 (
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_packet_write_wait(ssh)) != 0
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5739 fatal("%s: request tcpip-forward: %s",
never executed: fatal("%s: request tcpip-forward: %s", __func__, ssh_err(r));
0
5740 __func__, ssh_err(r));
never executed: fatal("%s: request tcpip-forward: %s", __func__, ssh_err(r));
0
5741 }
never executed: end of block
0
5742-
5743 success = 1;-
5744 if (success
successDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
5745-
5746 host_to_connect = listen_host = listen_path = -
5747 ((void *)0)-
5748 ;-
5749 port_to_connect = listen_port = 0;-
5750 if (fwd->connect_path !=
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5751 ((void *)0)
fwd->connect_p...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5752 ) {-
5753 host_to_connect = xstrdup(fwd->connect_path);-
5754 port_to_connect = -2;-
5755 }
never executed: end of block
else {
0
5756 host_to_connect = xstrdup(fwd->connect_host);-
5757 port_to_connect = fwd->connect_port;-
5758 }
never executed: end of block
0
5759 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5760 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5761 ) {-
5762 listen_path = xstrdup(fwd->listen_path);-
5763 listen_port = -2;-
5764 }
never executed: end of block
else {
0
5765 if (fwd->listen_host !=
fwd->listen_ho...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5766 ((void *)0)
fwd->listen_ho...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5767 )-
5768 listen_host = xstrdup(fwd->listen_host);
never executed: listen_host = xstrdup(fwd->listen_host);
0
5769 listen_port = fwd->listen_port;-
5770 }
never executed: end of block
0
5771 idx = permission_set_add(ssh, 0x101, (1<<1),-
5772 host_to_connect, port_to_connect,-
5773 listen_host, listen_path, listen_port, -
5774 ((void *)0)-
5775 );-
5776 }
never executed: end of block
0
5777 return
never executed: return idx;
idx;
never executed: return idx;
0
5778}-
5779-
5780static int-
5781open_match(struct permission *allowed_open, const char *requestedhost,-
5782 int requestedport)-
5783{-
5784 if (allowed_open->host_to_connect ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5785 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5786 )-
5787 return
never executed: return 0;
0;
never executed: return 0;
0
5788 if (allowed_open->port_to_connect != 0
allowed_open->...o_connect != 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
5789 allowed_open->port_to_connect != requestedport
allowed_open->... requestedportDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
5790 return
never executed: return 0;
0;
never executed: return 0;
0
5791 if (-
5792 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5793 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5794 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5795 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5796 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5797 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5798 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5799 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5800 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5801 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5802 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5803 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5804 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5805 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5806 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5807 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5808 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5809 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5810 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5811 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5812 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5813 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5814 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5815 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5816 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5817 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5818 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5819 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5820 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5821 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5822 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5823 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5824 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5825 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5826 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5827 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5828 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5829 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5830 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5831 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5832 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5833 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5834 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5835 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5836 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5837 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5838 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->host_to_connect ))[3] - __s2[3]);
0
5839 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->host_to_connect ))[3] - __s2[3]);
0
5840 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5841 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5842 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5843 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5844 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5845 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5846 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5847 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5848 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5849 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5850 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5851 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5852 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5853 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5854 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5855 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5856 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5857 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5858 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5859 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5860 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5861 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5862 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5863 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5864 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5865 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5866 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
5867 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
5868 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5869 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5870 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5871 "*"
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5872 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5873 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
5874 -
5875 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5876 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5877 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5878 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5879 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5880 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5881 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5882 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5883 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5884 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5885 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5886 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5887 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5888 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5889 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5890 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5891 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5892 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5893 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5894 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5895 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5896 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5897 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5898 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5899 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5900 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5901 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5902 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5903 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5904 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5905 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5906 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5907 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5908 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5909 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5910 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5911 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5912 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5913 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5914 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5915 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5916 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5917 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5918 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5919 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5920 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5921 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->host_to_connect ))[3] - __s2[3]);
0
5922 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->host_to_connect ))[3] - __s2[3]);
0
5923 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5924 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5925 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5926 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5927 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5928 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5929 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5930 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5931 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5932 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5933 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5934 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5935 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5936 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5937 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5938 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5939 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5940 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5941 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5942 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5943 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5944 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5945 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5946 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5947 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5948 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5949 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( requestedhost ))[3] - __s2[3]);
0
5950 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( requestedhost ))[3] - __s2[3]);
0
5951 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5952 allowed_open->host_to_connect
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5953 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5954 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5955 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5956 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
5957 return
never executed: return 0;
0;
never executed: return 0;
0
5958 return
never executed: return 1;
1;
never executed: return 1;
0
5959}-
5960-
5961-
5962-
5963-
5964-
5965-
5966-
5967static int-
5968open_listen_match_tcpip(struct permission *allowed_open,-
5969 const char *requestedhost, u_short requestedport, int translate)-
5970{-
5971 const char *allowed_host;-
5972-
5973 if (allowed_open->host_to_connect ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5974 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5975 )-
5976 return
never executed: return 0;
0;
never executed: return 0;
0
5977 if (allowed_open->listen_port != requestedport
allowed_open->... requestedportDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
5978 return
never executed: return 0;
0;
never executed: return 0;
0
5979 if (!translate
!translateDescription
TRUEnever evaluated
FALSEnever evaluated
&& allowed_open->listen_host ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5980 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5981 &&-
5982 requestedhost ==
requestedhost == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5983 ((void *)0)
requestedhost == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5984 )-
5985 return
never executed: return 1;
1;
never executed: return 1;
0
5986 allowed_host = translate
translateDescription
TRUEnever evaluated
FALSEnever evaluated
?
0
5987 channel_rfwd_bind_host(allowed_open->listen_host) :-
5988 allowed_open->listen_host;-
5989 if (allowed_host ==
allowed_host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5990 ((void *)0)
allowed_host == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5991 || requestedhost ==
requestedhost == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5992 ((void *)0)
requestedhost == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
5993 ||-
5994 -
5995 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5996 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5997 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5998 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
5999 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6000 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6001 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6002 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6003 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6004 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6005 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6006 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6007 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6008 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6009 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6010 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6011 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6012 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6013 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6014 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6015 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6016 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6017 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6018 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6019 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6020 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6021 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6022 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6023 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6024 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6025 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6026 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6027 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6028 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6029 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6030 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6031 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6032 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6033 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6034 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6035 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6036 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6037 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6038 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6039 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6040 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6041 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( allowed_host ))[3] - __s2[3]);
0
6042 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( allowed_host ))[3] - __s2[3]);
0
6043 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6044 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6045 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6046 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6047 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6048 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6049 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6050 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6051 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6052 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6053 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6054 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6055 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6056 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6057 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6058 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6059 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6060 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6061 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6062 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6063 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6064 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6065 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6066 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6067 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6068 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6069 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( requestedhost ))[3] - __s2[3]);
0
6070 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( requestedhost ))[3] - __s2[3]);
0
6071 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6072 allowed_host
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6073 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6074 requestedhost
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6075 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6076 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6077 return
never executed: return 0;
0;
never executed: return 0;
0
6078 return
never executed: return 1;
1;
never executed: return 1;
0
6079}-
6080-
6081static int-
6082open_listen_match_streamlocal(struct permission *allowed_open,-
6083 const char *requestedpath)-
6084{-
6085 if (allowed_open->host_to_connect ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6086 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6087 )-
6088 return
never executed: return 0;
0;
never executed: return 0;
0
6089 if (allowed_open->listen_port != -2
allowed_open->...ten_port != -2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6090 return
never executed: return 0;
0;
never executed: return 0;
0
6091 if (allowed_open->listen_path ==
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6092 ((void *)0)
allowed_open->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6093 ||-
6094 -
6095 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6096 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6097 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6098 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6099 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6100 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6101 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6102 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6103 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6104 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6105 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6106 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6107 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6108 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6109 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6110 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6111 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6112 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6113 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6114 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6115 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6116 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6117 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6118 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6119 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6120 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6121 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6122 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6123 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6124 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6125 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6126 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6127 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6128 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6129 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6130 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6131 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6132 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6133 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6134 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6135 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6136 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6137 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6138 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6139 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6140 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6141 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->listen_path ))[3] - __s2[3]);
0
6142 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( allowed_open->listen_path ))[3] - __s2[3]);
0
6143 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6144 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6145 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6146 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6147 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6148 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6149 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6150 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6151 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6152 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6153 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6154 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6155 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6156 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6157 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6158 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6159 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6160 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6161 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6162 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6163 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6164 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6165 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6166 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6167 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6168 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6169 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( requestedpath ))[3] - __s2[3]);
0
6170 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( requestedpath ))[3] - __s2[3]);
0
6171 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6172 allowed_open->listen_path
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6173 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6174 requestedpath
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6175 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6176 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6177 return
never executed: return 0;
0;
never executed: return 0;
0
6178 return
never executed: return 1;
1;
never executed: return 1;
0
6179}-
6180-
6181-
6182-
6183-
6184-
6185static int-
6186channel_request_rforward_cancel_tcpip(struct ssh *ssh,-
6187 const char *host, u_short port)-
6188{-
6189 struct ssh_channels *sc = ssh->chanctxt;-
6190 struct permission_set *pset = &sc->local_perms;-
6191 int r;-
6192 u_int i;-
6193 struct permission *perm;-
6194-
6195 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6196 perm = &pset->permitted_user[i];-
6197 if (open_listen_match_tcpip(perm, host, port, 0)
open_listen_ma...host, port, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6198 break;
never executed: break;
0
6199 perm = -
6200 ((void *)0)-
6201 ;-
6202 }
never executed: end of block
0
6203 if (perm ==
perm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6204 ((void *)0)
perm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6205 ) {-
6206 debug("%s: requested forward not found", __func__);-
6207 return
never executed: return -1;
-1;
never executed: return -1;
0
6208 }-
6209 if ((
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 80)) != 0
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6210 (
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, "cancel-tcpip-forward")) != 0
(r = sshpkt_pu...orward")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6211 (
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 0)) != 0
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6212 (
(r = sshpkt_pu...t(host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, channel_rfwd_bind_host(host))) != 0
(r = sshpkt_pu...t(host))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6213 (
(r = sshpkt_pu...h, port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, port)) != 0
(r = sshpkt_pu...h, port)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6214 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6215 fatal("%s: send cancel: %s", __func__, ssh_err(r));
never executed: fatal("%s: send cancel: %s", __func__, ssh_err(r));
0
6216-
6217 fwd_perm_clear(perm);-
6218-
6219 return
never executed: return 0;
0;
never executed: return 0;
0
6220}-
6221-
6222-
6223-
6224-
6225-
6226static int-
6227channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path)-
6228{-
6229 struct ssh_channels *sc = ssh->chanctxt;-
6230 struct permission_set *pset = &sc->local_perms;-
6231 int r;-
6232 u_int i;-
6233 struct permission *perm;-
6234-
6235 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6236 perm = &pset->permitted_user[i];-
6237 if (open_listen_match_streamlocal(perm, path)
open_listen_ma...al(perm, path)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6238 break;
never executed: break;
0
6239 perm = -
6240 ((void *)0)-
6241 ;-
6242 }
never executed: end of block
0
6243 if (perm ==
perm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6244 ((void *)0)
perm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6245 ) {-
6246 debug("%s: requested forward not found", __func__);-
6247 return
never executed: return -1;
-1;
never executed: return -1;
0
6248 }-
6249 if ((
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 80)) != 0
(r = sshpkt_st...ssh, 80)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6250 (
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh,
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6251 "cancel-streamlocal-forward@openssh.com")) != 0
(r = sshpkt_pu...sh.com")) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6252 (
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 0)) != 0
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6253 (
(r = sshpkt_pu...h, path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, path)) != 0
(r = sshpkt_pu...h, path)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6254 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6255 fatal("%s: send cancel: %s", __func__, ssh_err(r));
never executed: fatal("%s: send cancel: %s", __func__, ssh_err(r));
0
6256-
6257 fwd_perm_clear(perm);-
6258-
6259 return
never executed: return 0;
0;
never executed: return 0;
0
6260}-
6261-
6262-
6263-
6264-
6265int-
6266channel_request_rforward_cancel(struct ssh *ssh, struct Forward *fwd)-
6267{-
6268 if (fwd->listen_path !=
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6269 ((void *)0)
fwd->listen_pa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6270 ) {-
6271 return
never executed: return channel_request_rforward_cancel_streamlocal(ssh, fwd->listen_path);
channel_request_rforward_cancel_streamlocal(ssh,
never executed: return channel_request_rforward_cancel_streamlocal(ssh, fwd->listen_path);
0
6272 fwd->listen_path);
never executed: return channel_request_rforward_cancel_streamlocal(ssh, fwd->listen_path);
0
6273 } else {-
6274 return
never executed: return channel_request_rforward_cancel_tcpip(ssh, fwd->listen_host, fwd->listen_port ? fwd->listen_port : fwd->allocated_port);
channel_request_rforward_cancel_tcpip(ssh,
never executed: return channel_request_rforward_cancel_tcpip(ssh, fwd->listen_host, fwd->listen_port ? fwd->listen_port : fwd->allocated_port);
0
6275 fwd->listen_host,
never executed: return channel_request_rforward_cancel_tcpip(ssh, fwd->listen_host, fwd->listen_port ? fwd->listen_port : fwd->allocated_port);
0
6276 fwd->listen_port ? fwd->listen_port : fwd->allocated_port);
never executed: return channel_request_rforward_cancel_tcpip(ssh, fwd->listen_host, fwd->listen_port ? fwd->listen_port : fwd->allocated_port);
0
6277 }-
6278}-
6279-
6280-
6281-
6282-
6283-
6284-
6285void-
6286channel_permit_all(struct ssh *ssh, int where)-
6287{-
6288 struct permission_set *pset = permission_set_get(ssh, where);-
6289-
6290 if (pset->num_permitted_user == 0
pset->num_permitted_user == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6291 pset->all_permitted = 1;
never executed: pset->all_permitted = 1;
0
6292}
never executed: end of block
0
6293-
6294-
6295-
6296-
6297void-
6298channel_add_permission(struct ssh *ssh, int who, int where,-
6299 char *host, int port)-
6300{-
6301 int local = where == (1<<1);-
6302 struct permission_set *pset = permission_set_get(ssh, where);-
6303-
6304 debug("allow %s forwarding to host %s port %d",-
6305 fwd_ident(who, where), host, port);-
6306-
6307-
6308-
6309-
6310 permission_set_add(ssh, who, where,-
6311 local ? host : 0, local ? port : 0,-
6312 local ? -
6313 ((void *)0) -
6314 : host, -
6315 ((void *)0)-
6316 , local ? 0 : port, -
6317 ((void *)0)-
6318 );-
6319 pset->all_permitted = 0;-
6320}
never executed: end of block
0
6321-
6322-
6323-
6324-
6325void-
6326channel_disable_admin(struct ssh *ssh, int where)-
6327{-
6328 channel_clear_permission(ssh, 0x100, where);-
6329 permission_set_add(ssh, 0x100, where,-
6330 -
6331 ((void *)0)-
6332 , 0, -
6333 ((void *)0)-
6334 , -
6335 ((void *)0)-
6336 , 0, -
6337 ((void *)0)-
6338 );-
6339}
never executed: end of block
0
6340-
6341-
6342-
6343-
6344void-
6345channel_clear_permission(struct ssh *ssh, int who, int where)-
6346{-
6347 struct permission **permp;-
6348 u_int *npermp;-
6349-
6350 permission_set_get_array(ssh, who, where, &permp, &npermp);-
6351 *permp = xrecallocarray(*permp, *npermp, 0, sizeof(**permp));-
6352 *npermp = 0;-
6353}
never executed: end of block
0
6354-
6355-
6356-
6357-
6358-
6359-
6360void-
6361channel_update_permission(struct ssh *ssh, int idx, int newport)-
6362{-
6363 struct permission_set *pset = &ssh->chanctxt->local_perms;-
6364-
6365 if (idx < 0
idx < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(u_int)idx >= ...permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
u_int)idx >= pset->num_permitted_user
(u_int)idx >= ...permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6366 debug("%s: index out of range: %d num_permitted_user %d",-
6367 __func__, idx, pset->num_permitted_user);-
6368 return;
never executed: return;
0
6369 }-
6370 debug("%s allowed port %d for forwarding to host %s port %d",-
6371 newport > 0 ? "Updating" : "Removing",-
6372 newport,-
6373 pset->permitted_user[idx].host_to_connect,-
6374 pset->permitted_user[idx].port_to_connect);-
6375 if (newport <= 0
newport <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6376 fwd_perm_clear(&pset->permitted_user[idx]);
never executed: fwd_perm_clear(&pset->permitted_user[idx]);
0
6377 else {-
6378 pset->permitted_user[idx].listen_port =-
6379 (
(datafellows & 0x08000000)Description
TRUEnever evaluated
FALSEnever evaluated
datafellows & 0x08000000)
(datafellows & 0x08000000)Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : newport;
0
6380 }
never executed: end of block
0
6381}-
6382-
6383-
6384int-
6385permitopen_port(const char *p)-
6386{-
6387 int port;-
6388-
6389 if (-
6390 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6391 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6392 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6393 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6394 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6395 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6396 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6397 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6398 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6399 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6400 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6401 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6402 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6403 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6404 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6405 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6406 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6407 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6408 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6409 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6410 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6411 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6412 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6413 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6414 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6415 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6416 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6417 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6418 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6419 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6420 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6421 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6422 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6423 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6424 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6425 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6426 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6427 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6428 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6429 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6430 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6431 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6432 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6433 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6434 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6435 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6436 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
0
6437 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
0
6438 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6439 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6440 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6441 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6442 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6443 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6444 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6445 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6446 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6447 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6448 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6449 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6450 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6451 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6452 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6453 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6454 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6455 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6456 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6457 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6458 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6459 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6460 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6461 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6462 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6463 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6464 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
6465 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "*" ))[3] - __s2[3]);
0
6466 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6467 p
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6468 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6469 "*"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6470 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6471 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6472 return
never executed: return 0;
0;
never executed: return 0;
0
6473 if ((
(port = a2port(p)) > 0Description
TRUEnever evaluated
FALSEnever evaluated
port = a2port(p)) > 0
(port = a2port(p)) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6474 return
never executed: return port;
port;
never executed: return port;
0
6475 return
never executed: return -1;
-1;
never executed: return -1;
0
6476}-
6477-
6478-
6479static int-
6480connect_next(struct channel_connect *cctx)-
6481{-
6482 int sock, saved_errno;-
6483 struct sockaddr_un *sunaddr;-
6484 char ntop[-
6485 1025-
6486 ];-
6487 char strport[(((-
6488 32-
6489 ) > (sizeof(sunaddr->sun_path))) ? (-
6490 32-
6491 ) : (sizeof(sunaddr->sun_path)))];-
6492-
6493 for (; cctx->ai
cctx->aiDescription
TRUEnever evaluated
FALSEnever evaluated
; cctx->ai = cctx->ai->ai_next) {
0
6494 switch (cctx->ai->ai_family) {-
6495 case
never executed: case 1 :
never executed: case 1 :
0
6496 1
never executed: case 1 :
0
6497 :
never executed: case 1 :
0
6498-
6499 sunaddr = (struct sockaddr_un *)cctx->ai->ai_addr;-
6500 strlcpy(ntop, "unix", sizeof(ntop));-
6501 strlcpy(strport, sunaddr->sun_path, sizeof(strport));-
6502 break;
never executed: break;
0
6503 case
never executed: case 2 :
never executed: case 2 :
0
6504 2
never executed: case 2 :
0
6505 :
never executed: case 2 :
0
6506 case
never executed: case 10 :
never executed: case 10 :
0
6507 10
never executed: case 10 :
0
6508 :
never executed: case 10 :
0
6509 if (getnameinfo(cctx->ai->ai_addr, cctx->ai->ai_addrlen,
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6510 ntop, sizeof(ntop), strport, sizeof(strport),
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6511
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6512 1
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6513 |
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6514 2
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6515 ) != 0
getnameinfo(cc..., 1 | 2 ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6516 error("connect_next: getnameinfo failed");-
6517 continue;
never executed: continue;
0
6518 }-
6519 break;
never executed: break;
0
6520 default
never executed: default:
:
never executed: default:
0
6521 continue;
never executed: continue;
0
6522 }-
6523 if ((
(sock = socket...otocol)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
sock = socket(cctx->ai->ai_family, cctx->ai->ai_socktype,
(sock = socket...otocol)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
6524 cctx->ai->ai_protocol)) == -1
(sock = socket...otocol)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6525 if (cctx->ai->ai_next ==
cctx->ai->ai_n...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6526 ((void *)0)
cctx->ai->ai_n...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6527 )-
6528 error("socket: %.100s", strerror(
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
6529 (*__errno_location ())
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
6530 ));
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
6531 else-
6532 verbose("socket: %.100s", strerror(
never executed: verbose("socket: %.100s", strerror( (*__errno_location ()) ));
0
6533 (*__errno_location ())
never executed: verbose("socket: %.100s", strerror( (*__errno_location ()) ));
0
6534 ));
never executed: verbose("socket: %.100s", strerror( (*__errno_location ()) ));
0
6535 continue;
never executed: continue;
0
6536 }-
6537 if (set_nonblock(sock) == -1
set_nonblock(sock) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6538 fatal("%s: set_nonblock(%d)", __func__, sock);
never executed: fatal("%s: set_nonblock(%d)", __func__, sock);
0
6539 if (connect(sock, cctx->ai->ai_addr,
connect(sock, ...addrlen) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
6540 cctx->ai->ai_addrlen) == -1
connect(sock, ...addrlen) == -1Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
6541 (*
(*__errno_location ()) != 115Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 115Description
TRUEnever evaluated
FALSEnever evaluated
0
6542 !=
(*__errno_location ()) != 115Description
TRUEnever evaluated
FALSEnever evaluated
0
6543 115
(*__errno_location ()) != 115Description
TRUEnever evaluated
FALSEnever evaluated
0
6544 ) {-
6545 debug("connect_next: host %.100s ([%.100s]:%s): "-
6546 "%.100s", cctx->host, ntop, strport,-
6547 strerror(-
6548 (*__errno_location ())-
6549 ));-
6550 saved_errno = -
6551 (*__errno_location ())-
6552 ;-
6553 close(sock);-
6554 -
6555 (*__errno_location ()) -
6556 = saved_errno;-
6557 continue;
never executed: continue;
0
6558 }-
6559 if (cctx->ai->ai_family !=
cctx->ai->ai_family != 1Description
TRUEnever evaluated
FALSEnever evaluated
0
6560 1
cctx->ai->ai_family != 1Description
TRUEnever evaluated
FALSEnever evaluated
0
6561 )-
6562 set_nodelay(sock);
never executed: set_nodelay(sock);
0
6563 debug("connect_next: host %.100s ([%.100s]:%s) "-
6564 "in progress, fd=%d", cctx->host, ntop, strport, sock);-
6565 cctx->ai = cctx->ai->ai_next;-
6566 return
never executed: return sock;
sock;
never executed: return sock;
0
6567 }-
6568 return
never executed: return -1;
-1;
never executed: return -1;
0
6569}-
6570-
6571static void-
6572channel_connect_ctx_free(struct channel_connect *cctx)-
6573{-
6574 free(cctx->host);-
6575 if (cctx->aitop
cctx->aitopDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6576 if (cctx->aitop->ai_family ==
cctx->aitop->ai_family == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
6577 1
cctx->aitop->ai_family == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
6578 )-
6579 free(cctx->aitop);
never executed: free(cctx->aitop);
0
6580 else-
6581 freeaddrinfo(cctx->aitop);
never executed: freeaddrinfo(cctx->aitop);
0
6582 }-
6583 memset(cctx, 0, sizeof(*cctx));-
6584}
never executed: end of block
0
6585-
6586-
6587-
6588-
6589-
6590static int-
6591connect_to_helper(struct ssh *ssh, const char *name, int port, int socktype,-
6592 char *ctype, char *rname, struct channel_connect *cctx,-
6593 int *reason, const char **errmsg)-
6594{-
6595 struct addrinfo hints;-
6596 int gaierr;-
6597 int sock = -1;-
6598 char strport[-
6599 32-
6600 ];-
6601-
6602 if (port == -2
port == -2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6603 struct sockaddr_un *sunaddr;-
6604 struct addrinfo *ai;-
6605-
6606 if (strlen(name) > sizeof(sunaddr->sun_path)
strlen(name) >...ddr->sun_path)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6607 error("%.100s: %.100s", name, strerror(-
6608 36-
6609 ));-
6610 return
never executed: return -1;
-1;
never executed: return -1;
0
6611 }-
6612-
6613-
6614-
6615-
6616-
6617-
6618 ai = xmalloc(sizeof(*ai) + sizeof(*sunaddr));-
6619 memset(ai, 0, sizeof(*ai) + sizeof(*sunaddr));-
6620 ai->ai_addr = (struct sockaddr *)(ai + 1);-
6621 ai->ai_addrlen = sizeof(*sunaddr);-
6622 ai->ai_family = -
6623 1-
6624 ;-
6625 ai->ai_socktype = socktype;-
6626 ai->ai_protocol = -
6627 0-
6628 ;-
6629 sunaddr = (struct sockaddr_un *)ai->ai_addr;-
6630 sunaddr->sun_family = -
6631 1-
6632 ;-
6633 strlcpy(sunaddr->sun_path, name, sizeof(sunaddr->sun_path));-
6634 cctx->aitop = ai;-
6635 }
never executed: end of block
else {
0
6636 memset(&hints, 0, sizeof(hints));-
6637 hints.ai_family = ssh->chanctxt->IPv4or6;-
6638 hints.ai_socktype = socktype;-
6639 snprintf(strport, sizeof strport, "%d", port);-
6640 if ((
(gaierr = geta...->aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
gaierr = getaddrinfo(name, strport, &hints, &cctx->aitop))
(gaierr = geta...->aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6641 != 0
(gaierr = geta...->aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6642 if (errmsg !=
errmsg != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6643 ((void *)0)
errmsg != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6644 )-
6645 *
never executed: *errmsg = ssh_gai_strerror(gaierr);
errmsg = ssh_gai_strerror(gaierr);
never executed: *errmsg = ssh_gai_strerror(gaierr);
0
6646 if (reason !=
reason != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6647 ((void *)0)
reason != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6648 )-
6649 *
never executed: *reason = 2;
reason = 2;
never executed: *reason = 2;
0
6650 error("connect_to %.100s: unknown host (%s)", name,-
6651 ssh_gai_strerror(gaierr));-
6652 return
never executed: return -1;
-1;
never executed: return -1;
0
6653 }-
6654 }
never executed: end of block
0
6655-
6656 cctx->host = xstrdup(name);-
6657 cctx->port = port;-
6658 cctx->ai = cctx->aitop;-
6659-
6660 if ((
(sock = connec...t(cctx)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
sock = connect_next(cctx)) == -1
(sock = connec...t(cctx)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6661 error("connect to %.100s port %d failed: %s",-
6662 name, port, strerror(-
6663 (*__errno_location ())-
6664 ));-
6665 return
never executed: return -1;
-1;
never executed: return -1;
0
6666 }-
6667-
6668 return
never executed: return sock;
sock;
never executed: return sock;
0
6669}-
6670-
6671-
6672static Channel *-
6673connect_to(struct ssh *ssh, const char *host, int port,-
6674 char *ctype, char *rname)-
6675{-
6676 struct channel_connect cctx;-
6677 Channel *c;-
6678 int sock;-
6679-
6680 memset(&cctx, 0, sizeof(cctx));-
6681 sock = connect_to_helper(ssh, host, port, -
6682 SOCK_STREAM-
6683 , ctype, rname,-
6684 &cctx, -
6685 ((void *)0)-
6686 , -
6687 ((void *)0)-
6688 );-
6689 if (sock == -1
sock == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6690 channel_connect_ctx_free(&cctx);-
6691 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6692 ((void *)0)
never executed: return ((void *)0) ;
0
6693 ;
never executed: return ((void *)0) ;
0
6694 }-
6695 c = channel_new(ssh, ctype, 12, sock, sock, -1,-
6696 (64*(32*1024)), (32*1024), 0, rname, 1);-
6697 c->host_port = port;-
6698 c->path = xstrdup(host);-
6699 c->connect_ctx = cctx;-
6700-
6701 return
never executed: return c;
c;
never executed: return c;
0
6702}-
6703-
6704-
6705-
6706-
6707-
6708Channel *-
6709channel_connect_by_listen_address(struct ssh *ssh, const char *listen_host,-
6710 u_short listen_port, char *ctype, char *rname)-
6711{-
6712 struct ssh_channels *sc = ssh->chanctxt;-
6713 struct permission_set *pset = &sc->local_perms;-
6714 u_int i;-
6715 struct permission *perm;-
6716-
6717 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6718 perm = &pset->permitted_user[i];-
6719 if (open_listen_match_tcpip(perm,
open_listen_ma...isten_port, 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
6720 listen_host, listen_port, 1)
open_listen_ma...isten_port, 1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6721 if (perm->downstream
perm->downstreamDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
6722 return
never executed: return perm->downstream;
perm->downstream;
never executed: return perm->downstream;
0
6723 if (perm->port_to_connect == 0
perm->port_to_connect == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6724 return
never executed: return rdynamic_connect_prepare(ssh, ctype, rname);
rdynamic_connect_prepare(ssh,
never executed: return rdynamic_connect_prepare(ssh, ctype, rname);
0
6725 ctype, rname);
never executed: return rdynamic_connect_prepare(ssh, ctype, rname);
0
6726 return
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
connect_to(ssh,
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6727 perm->host_to_connect, perm->port_to_connect,
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6728 ctype, rname);
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6729 }-
6730 }
never executed: end of block
0
6731 error("WARNING: Server requests forwarding for unknown listen_port %d",-
6732 listen_port);-
6733 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6734 ((void *)0)
never executed: return ((void *)0) ;
0
6735 ;
never executed: return ((void *)0) ;
0
6736}-
6737-
6738Channel *-
6739channel_connect_by_listen_path(struct ssh *ssh, const char *path,-
6740 char *ctype, char *rname)-
6741{-
6742 struct ssh_channels *sc = ssh->chanctxt;-
6743 struct permission_set *pset = &sc->local_perms;-
6744 u_int i;-
6745 struct permission *perm;-
6746-
6747 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6748 perm = &pset->permitted_user[i];-
6749 if (open_listen_match_streamlocal(perm, path)
open_listen_ma...al(perm, path)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6750 return
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
connect_to(ssh,
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6751 perm->host_to_connect, perm->port_to_connect,
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6752 ctype, rname);
never executed: return connect_to(ssh, perm->host_to_connect, perm->port_to_connect, ctype, rname);
0
6753 }-
6754 }
never executed: end of block
0
6755 error("WARNING: Server requests forwarding for unknown path %.100s",-
6756 path);-
6757 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6758 ((void *)0)
never executed: return ((void *)0) ;
0
6759 ;
never executed: return ((void *)0) ;
0
6760}-
6761-
6762-
6763Channel *-
6764channel_connect_to_port(struct ssh *ssh, const char *host, u_short port,-
6765 char *ctype, char *rname, int *reason, const char **errmsg)-
6766{-
6767 struct ssh_channels *sc = ssh->chanctxt;-
6768 struct permission_set *pset = &sc->local_perms;-
6769 struct channel_connect cctx;-
6770 Channel *c;-
6771 u_int i, permit, permit_adm = 1;-
6772 int sock;-
6773 struct permission *perm;-
6774-
6775 permit = pset->all_permitted;-
6776 if (!permit
!permitDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6777 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6778 perm = &pset->permitted_user[i];-
6779 if (open_match(perm, host, port)
open_match(perm, host, port)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6780 permit = 1;-
6781 break;
never executed: break;
0
6782 }-
6783 }
never executed: end of block
0
6784 }
never executed: end of block
0
6785-
6786 if (pset->num_permitted_admin > 0
pset->num_permitted_admin > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6787 permit_adm = 0;-
6788 for (i = 0; i < pset->num_permitted_admin
i < pset->num_permitted_adminDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6789 perm = &pset->permitted_admin[i];-
6790 if (open_match(perm, host, port)
open_match(perm, host, port)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6791 permit_adm = 1;-
6792 break;
never executed: break;
0
6793 }-
6794 }
never executed: end of block
0
6795 }
never executed: end of block
0
6796-
6797 if (!permit
!permitDescription
TRUEnever evaluated
FALSEnever evaluated
|| !permit_adm
!permit_admDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6798 logit("Received request to connect to host %.100s port %d, "-
6799 "but the request was denied.", host, port);-
6800 if (reason !=
reason != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6801 ((void *)0)
reason != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6802 )-
6803 *
never executed: *reason = 1;
reason = 1;
never executed: *reason = 1;
0
6804 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6805 ((void *)0)
never executed: return ((void *)0) ;
0
6806 ;
never executed: return ((void *)0) ;
0
6807 }-
6808-
6809 memset(&cctx, 0, sizeof(cctx));-
6810 sock = connect_to_helper(ssh, host, port, -
6811 SOCK_STREAM-
6812 , ctype, rname,-
6813 &cctx, reason, errmsg);-
6814 if (sock == -1
sock == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6815 channel_connect_ctx_free(&cctx);-
6816 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6817 ((void *)0)
never executed: return ((void *)0) ;
0
6818 ;
never executed: return ((void *)0) ;
0
6819 }-
6820-
6821 c = channel_new(ssh, ctype, 12, sock, sock, -1,-
6822 (64*(32*1024)), (32*1024), 0, rname, 1);-
6823 c->host_port = port;-
6824 c->path = xstrdup(host);-
6825 c->connect_ctx = cctx;-
6826-
6827 return
never executed: return c;
c;
never executed: return c;
0
6828}-
6829-
6830-
6831Channel *-
6832channel_connect_to_path(struct ssh *ssh, const char *path,-
6833 char *ctype, char *rname)-
6834{-
6835 struct ssh_channels *sc = ssh->chanctxt;-
6836 struct permission_set *pset = &sc->local_perms;-
6837 u_int i, permit, permit_adm = 1;-
6838 struct permission *perm;-
6839-
6840 permit = pset->all_permitted;-
6841 if (!permit
!permitDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6842 for (i = 0; i < pset->num_permitted_user
i < pset->num_permitted_userDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6843 perm = &pset->permitted_user[i];-
6844 if (open_match(perm, path, -2)
open_match(perm, path, -2)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6845 permit = 1;-
6846 break;
never executed: break;
0
6847 }-
6848 }
never executed: end of block
0
6849 }
never executed: end of block
0
6850-
6851 if (pset->num_permitted_admin > 0
pset->num_permitted_admin > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6852 permit_adm = 0;-
6853 for (i = 0; i < pset->num_permitted_admin
i < pset->num_permitted_adminDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6854 perm = &pset->permitted_admin[i];-
6855 if (open_match(perm, path, -2)
open_match(perm, path, -2)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6856 permit_adm = 1;-
6857 break;
never executed: break;
0
6858 }-
6859 }
never executed: end of block
0
6860 }
never executed: end of block
0
6861-
6862 if (!permit
!permitDescription
TRUEnever evaluated
FALSEnever evaluated
|| !permit_adm
!permit_admDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
6863 logit("Received request to connect to path %.100s, "-
6864 "but the request was denied.", path);-
6865 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
6866 ((void *)0)
never executed: return ((void *)0) ;
0
6867 ;
never executed: return ((void *)0) ;
0
6868 }-
6869 return
never executed: return connect_to(ssh, path, -2, ctype, rname);
connect_to(ssh, path, -2, ctype, rname);
never executed: return connect_to(ssh, path, -2, ctype, rname);
0
6870}-
6871-
6872void-
6873channel_send_window_changes(struct ssh *ssh)-
6874{-
6875 struct ssh_channels *sc = ssh->chanctxt;-
6876 struct winsize ws;-
6877 int r;-
6878 u_int i;-
6879-
6880 for (i = 0; i < sc->channels_alloc
i < sc->channels_allocDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
6881 if (sc->channels[i] ==
sc->channels[i] == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6882 ((void *)0)
sc->channels[i] == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6883 || !sc->channels[i]->client_tty
!sc->channels[i]->client_ttyDescription
TRUEnever evaluated
FALSEnever evaluated
||
0
6884 sc->channels[i]->type != 4
sc->channels[i]->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6885 continue;
never executed: continue;
0
6886 if (ioctl(sc->channels[i]->rfd,
ioctl(sc->chan...413 , &ws) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6887 0x5413
ioctl(sc->chan...413 , &ws) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6888 , &ws) < 0
ioctl(sc->chan...413 , &ws) < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6889 continue;
never executed: continue;
0
6890 channel_request_start(ssh, i, "window-change", 0);-
6891 if ((
(r = sshpkt_pu....ws_col)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, (u_int)ws.ws_col)) != 0
(r = sshpkt_pu....ws_col)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6892 (
(r = sshpkt_pu....ws_row)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, (u_int)ws.ws_row)) != 0
(r = sshpkt_pu....ws_row)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6893 (
(r = sshpkt_pu..._xpixel)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, (u_int)ws.ws_xpixel)) != 0
(r = sshpkt_pu..._xpixel)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6894 (
(r = sshpkt_pu..._ypixel)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, (u_int)ws.ws_ypixel)) != 0
(r = sshpkt_pu..._ypixel)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6895 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6896 fatal("%s: channel %u: send window-change: %s",
never executed: fatal("%s: channel %u: send window-change: %s", __func__, i, ssh_err(r));
0
6897 __func__, i, ssh_err(r));
never executed: fatal("%s: channel %u: send window-change: %s", __func__, i, ssh_err(r));
0
6898 }
never executed: end of block
0
6899}
never executed: end of block
0
6900-
6901-
6902static Channel *-
6903rdynamic_connect_prepare(struct ssh *ssh, char *ctype, char *rname)-
6904{-
6905 Channel *c;-
6906 int r;-
6907-
6908 c = channel_new(ssh, ctype, 21, -1, -1, -1,-
6909 (64*(32*1024)), (32*1024), 0, rname, 1);-
6910 c->host_port = 0;-
6911 c->path = -
6912 ((void *)0)-
6913 ;-
6914-
6915-
6916-
6917-
6918-
6919 if ((
(r = sshpkt_st...ssh, 91)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_start(ssh, 91)) != 0
(r = sshpkt_st...ssh, 91)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6920 (
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->remote_id)) != 0
(r = sshpkt_pu...mote_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6921 (
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->self)) != 0
(r = sshpkt_pu...c->self)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6922 (
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_window)) != 0
(r = sshpkt_pu..._window)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
6923 (
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0
(r = sshpkt_pu...xpacket)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6924 fatal("%s: channel %i: confirm: %s", __func__,-
6925 c->self, ssh_err(r));-
6926 }
never executed: end of block
0
6927 return
never executed: return c;
c;
never executed: return c;
0
6928}-
6929-
6930-
6931static int-
6932rdynamic_connect_finish(struct ssh *ssh, Channel *c)-
6933{-
6934 struct channel_connect cctx;-
6935 int sock;-
6936-
6937 memset(&cctx, 0, sizeof(cctx));-
6938 sock = connect_to_helper(ssh, c->path, c->host_port, -
6939 SOCK_STREAM-
6940 , -
6941 ((void *)0)-
6942 ,-
6943 -
6944 ((void *)0)-
6945 , &cctx, -
6946 ((void *)0)-
6947 , -
6948 ((void *)0)-
6949 );-
6950 if (sock == -1
sock == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6951 channel_connect_ctx_free(&cctx);
never executed: channel_connect_ctx_free(&cctx);
0
6952 else {-
6953-
6954 c->type = 22;-
6955 c->connect_ctx = cctx;-
6956 channel_register_fds(ssh, c, sock, sock, -1, 0, 1, 0);-
6957 }
never executed: end of block
0
6958 return
never executed: return sock;
sock;
never executed: return sock;
0
6959}-
6960int-
6961x11_create_display_inet(struct ssh *ssh, int x11_display_offset,-
6962 int x11_use_localhost, int single_connection,-
6963 u_int *display_numberp, int **chanids)-
6964{-
6965 Channel *nc = -
6966 ((void *)0)-
6967 ;-
6968 int display_number, sock;-
6969 u_short port;-
6970 struct addrinfo hints, *ai, *aitop;-
6971 char strport[-
6972 32-
6973 ];-
6974 int gaierr, n, num_socks = 0, socks[10];-
6975-
6976 if (chanids ==
chanids == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6977 ((void *)0)
chanids == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
6978 )-
6979 return
never executed: return -1;
-1;
never executed: return -1;
0
6980-
6981 for (display_number = x11_display_offset;-
6982 display_number < 1000
display_number < 1000Description
TRUEnever evaluated
FALSEnever evaluated
;
0
6983 display_number++) {-
6984 port = 6000 + display_number;-
6985 memset(&hints, 0, sizeof(hints));-
6986 hints.ai_family = ssh->chanctxt->IPv4or6;-
6987 hints.ai_flags = x11_use_localhost
x11_use_localhostDescription
TRUEnever evaluated
FALSEnever evaluated
? 0:
0
6988 0x0001-
6989 ;-
6990 hints.ai_socktype = -
6991 SOCK_STREAM-
6992 ;-
6993 snprintf(strport, sizeof strport, "%d", port);-
6994 if ((
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
gaierr = getaddrinfo(
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6995 ((void *)0)
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6996 , strport,
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
6997 &hints, &aitop)) != 0
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
6998 error("getaddrinfo: %.100s", ssh_gai_strerror(gaierr));-
6999 return
never executed: return -1;
-1;
never executed: return -1;
0
7000 }-
7001 for (ai = aitop; ai
aiDescription
TRUEnever evaluated
FALSEnever evaluated
; ai = ai->ai_next) {
0
7002 if (ai->ai_family !=
ai->ai_family != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
7003 2
ai->ai_family != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
7004 &&-
7005 ai->ai_family !=
ai->ai_family != 10Description
TRUEnever evaluated
FALSEnever evaluated
0
7006 10
ai->ai_family != 10Description
TRUEnever evaluated
FALSEnever evaluated
0
7007 )-
7008 continue;
never executed: continue;
0
7009 sock = socket(ai->ai_family, ai->ai_socktype,-
7010 ai->ai_protocol);-
7011 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7012 if ((
( (*__errno_lo...on ()) != 22 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7013 (*__errno_location ())
( (*__errno_lo...on ()) != 22 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7014 !=
( (*__errno_lo...on ()) != 22 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7015 22
( (*__errno_lo...on ()) != 22 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7016 )
( (*__errno_lo...on ()) != 22 )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
( (*__errno_lo...on ()) != 97 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7017 (*__errno_location ())
( (*__errno_lo...on ()) != 97 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7018 !=
( (*__errno_lo...on ()) != 97 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7019 97
( (*__errno_lo...on ()) != 97 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7020 )
( (*__errno_lo...on ()) != 97 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7021-
7022 && (
( (*__errno_lo...on ()) != 96 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7023 (*__errno_location ())
( (*__errno_lo...on ()) != 96 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7024 !=
( (*__errno_lo...on ()) != 96 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7025 96
( (*__errno_lo...on ()) != 96 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7026 )
( (*__errno_lo...on ()) != 96 )Description
TRUEnever evaluated
FALSEnever evaluated
0
7027-
7028 ) {-
7029 error("socket: %.100s", strerror(-
7030 (*__errno_location ())-
7031 ));-
7032 freeaddrinfo(aitop);-
7033 return
never executed: return -1;
-1;
never executed: return -1;
0
7034 } else {-
7035 debug("x11_create_display_inet: Socket family %d not supported",-
7036 ai->ai_family);-
7037 continue;
never executed: continue;
0
7038 }-
7039 }-
7040 if (ai->ai_family ==
ai->ai_family == 10Description
TRUEnever evaluated
FALSEnever evaluated
0
7041 10
ai->ai_family == 10Description
TRUEnever evaluated
FALSEnever evaluated
0
7042 )-
7043 sock_set_v6only(sock);
never executed: sock_set_v6only(sock);
0
7044 if (x11_use_localhost
x11_use_localhostDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
7045 set_reuseaddr(sock);
never executed: set_reuseaddr(sock);
0
7046 if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0
bind(sock, ai-...i_addrlen) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7047 debug2("%s: bind port %d: %.100s", __func__,-
7048 port, strerror(-
7049 (*__errno_location ())-
7050 ));-
7051 close(sock);-
7052 for (n = 0; n < num_socks
n < num_socksDescription
TRUEnever evaluated
FALSEnever evaluated
; n++)
0
7053 close(socks[n]);
never executed: close(socks[n]);
0
7054 num_socks = 0;-
7055 break;
never executed: break;
0
7056 }-
7057 socks[num_socks++] = sock;-
7058 if (num_socks == 10
num_socks == 10Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7059 break;
never executed: break;
0
7060 }
never executed: end of block
0
7061 freeaddrinfo(aitop);-
7062 if (num_socks > 0
num_socks > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7063 break;
never executed: break;
0
7064 }
never executed: end of block
0
7065 if (display_number >= 1000
display_number >= 1000Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7066 error("Failed to allocate internet-domain X11 display socket.");-
7067 return
never executed: return -1;
-1;
never executed: return -1;
0
7068 }-
7069-
7070 for (n = 0; n < num_socks
n < num_socksDescription
TRUEnever evaluated
FALSEnever evaluated
; n++) {
0
7071 sock = socks[n];-
7072 if (listen(sock, 128) < 0
listen(sock, 128) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7073 error("listen: %.100s", strerror(-
7074 (*__errno_location ())-
7075 ));-
7076 close(sock);-
7077 return
never executed: return -1;
-1;
never executed: return -1;
0
7078 }-
7079 }
never executed: end of block
0
7080-
7081-
7082 *chanids = xcalloc(num_socks + 1, sizeof(**chanids));-
7083 for (n = 0; n < num_socks
n < num_socksDescription
TRUEnever evaluated
FALSEnever evaluated
; n++) {
0
7084 sock = socks[n];-
7085 nc = channel_new(ssh, "x11 listener",-
7086 1, sock, sock, -1,-
7087 (4*(16*1024)), (16*1024),-
7088 0, "X11 inet listener", 1);-
7089 nc->single_connection = single_connection;-
7090 (*chanids)[n] = nc->self;-
7091 }
never executed: end of block
0
7092 (*chanids)[n] = -1;-
7093-
7094-
7095 *display_numberp = display_number;-
7096 return
never executed: return 0;
0;
never executed: return 0;
0
7097}-
7098-
7099static int-
7100connect_local_xsocket_path(const char *pathname)-
7101{-
7102 int sock;-
7103 struct sockaddr_un addr;-
7104-
7105 sock = socket(-
7106 1-
7107 , -
7108 SOCK_STREAM-
7109 , 0);-
7110 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7111 error("socket: %.100s", strerror(
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
7112 (*__errno_location ())
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
7113 ));
never executed: error("socket: %.100s", strerror( (*__errno_location ()) ));
0
7114 memset(&addr, 0, sizeof(addr));-
7115 addr.sun_family = -
7116 1-
7117 ;-
7118 strlcpy(addr.sun_path, pathname, sizeof addr.sun_path);-
7119 if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0
connect(sock, ...of(addr)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7120 return
never executed: return sock;
sock;
never executed: return sock;
0
7121 close(sock);-
7122 error("connect %.100s: %.100s", addr.sun_path, strerror(-
7123 (*__errno_location ())-
7124 ));-
7125 return
never executed: return -1;
-1;
never executed: return -1;
0
7126}-
7127-
7128static int-
7129connect_local_xsocket(u_int dnr)-
7130{-
7131 char buf[1024];-
7132 snprintf(buf, sizeof buf, "/tmp/.X11-unix/X%u", dnr);-
7133 return
never executed: return connect_local_xsocket_path(buf);
connect_local_xsocket_path(buf);
never executed: return connect_local_xsocket_path(buf);
0
7134}-
7135int-
7136x11_connect_display(struct ssh *ssh)-
7137{-
7138 u_int display_number;-
7139 const char *display;-
7140 char buf[1024], *cp;-
7141 struct addrinfo hints, *ai, *aitop;-
7142 char strport[-
7143 32-
7144 ];-
7145 int gaierr, sock = 0;-
7146-
7147-
7148 display = getenv("DISPLAY");-
7149 if (!display
!displayDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
7150 error("DISPLAY not set.");-
7151 return
never executed: return -1;
-1;
never executed: return -1;
0
7152 }-
7153 if (-
7154 (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ (__builtin_constant_p (
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7155 5
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7156 )
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
&& ((__builtin_constant_p (
__builtin_cons..._p ( display )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7157 display
__builtin_cons..._p ( display )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7158 )
__builtin_cons..._p ( display )Description
TRUEnever evaluated
FALSEnever evaluated
&& strlen (
strlen ( displ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7159 display
strlen ( displ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7160 ) < ((size_t) (
strlen ( displ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7161 5
strlen ( displ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7162 ))
strlen ( displ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
) || (__builtin_constant_p (
__builtin_cons..._p ( "unix:" )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7163 "unix:"
__builtin_cons..._p ( "unix:" )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7164 )
__builtin_cons..._p ( "unix:" )Description
TRUEnever evaluated
FALSEnever evaluated
&& strlen (
strlen ( "unix...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7165 "unix:"
strlen ( "unix...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7166 ) < ((size_t) (
strlen ( "unix...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7167 5
strlen ( "unix...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7168 ))
strlen ( "unix...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7169 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7170 ) && __builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7171 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7172 ) && (__s1_len = __builtin_strlen (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7173 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7174 ), __s2_len = __builtin_strlen (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7175 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7176 ), (!((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7177 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7178 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7179 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7180 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7181 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7182 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7183 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7184 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7185 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7186 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7187 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7188 ) : (__builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7189 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7190 ) && ((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7191 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7192 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7193 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7194 ) == 1) && (__s1_len = __builtin_strlen (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7195 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7196 ), __s1_len < 4) ? (__builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7197 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7198 ) && ((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7199 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7200 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7201 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7202 ) == 1) ? __builtin_strcmp (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7203 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7204 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7205 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7206 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7207 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7208 ); int __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7209 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7210 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7211 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7212 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7213 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7214 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( display ))[3] - __s2[3]);
0
7215 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( display ))[3] - __s2[3]);
0
7216 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7217 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7218 ) && ((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7219 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7220 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7221 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7222 ) == 1) && (__s2_len = __builtin_strlen (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7223 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7224 ), __s2_len < 4) ? (__builtin_constant_p (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7225 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7226 ) && ((size_t)(const void *)((
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7227 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7228 ) + 1) - (size_t)(const void *)(
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7229 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7230 ) == 1) ? __builtin_strcmp (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7231 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7232 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7233 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7234 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7235 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7236 ); int __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7237 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7238 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7239 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7240 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7241 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7242 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "unix:" ))[3] - __s2[3]);
0
7243 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "unix:" ))[3] - __s2[3]);
0
7244 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7245 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7246 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7247 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7248 )))); }) : strncmp (
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7249 display
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7250 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7251 "unix:"
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7252 ,
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7253 5
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7254 )))
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7255 == 0
(__extension__..." , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7256 display[0] == ':'
display[0] == ':'Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7257-
7258 if (sscanf(strrchr(display, ':') + 1, "%u",
sscanf(strrchr...y_number) != 1Description
TRUEnever evaluated
FALSEnever evaluated
0
7259 &display_number) != 1
sscanf(strrchr...y_number) != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7260 error("Could not parse display number from DISPLAY: "-
7261 "%.100s", display);-
7262 return
never executed: return -1;
-1;
never executed: return -1;
0
7263 }-
7264-
7265 sock = connect_local_xsocket(display_number);-
7266 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7267 return
never executed: return -1;
-1;
never executed: return -1;
0
7268-
7269-
7270 return
never executed: return sock;
sock;
never executed: return sock;
0
7271 }-
7272-
7273-
7274-
7275-
7276 strlcpy(buf, display, sizeof(buf));-
7277 cp = -
7278 (__extension__ (__builtin_constant_p (
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
0
7279 ':'
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
0
7280 )
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
&& !__builtin_constant_p (
!__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEnever evaluated
0
7281 buf
!__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEnever evaluated
0
7282 )
!__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
7283 ':'
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
7284 ) == '\0'
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
? (char *) __rawmemchr (
0
7285 buf-
7286 , -
7287 ':'-
7288 ) : __builtin_strchr (-
7289 buf-
7290 , -
7291 ':'-
7292 )))-
7293 ;-
7294 if (!cp
!cpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
7295 error("Could not find ':' in DISPLAY: %.100s", display);-
7296 return
never executed: return -1;
-1;
never executed: return -1;
0
7297 }-
7298 *cp = 0;-
7299-
7300-
7301-
7302-
7303 if (sscanf(cp + 1, "%u", &display_number) != 1
sscanf(cp + 1,...y_number) != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7304 error("Could not parse display number from DISPLAY: %.100s",-
7305 display);-
7306 return
never executed: return -1;
-1;
never executed: return -1;
0
7307 }-
7308-
7309-
7310 memset(&hints, 0, sizeof(hints));-
7311 hints.ai_family = ssh->chanctxt->IPv4or6;-
7312 hints.ai_socktype = -
7313 SOCK_STREAM-
7314 ;-
7315 snprintf(strport, sizeof strport, "%u", 6000 + display_number);-
7316 if ((
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
gaierr = getaddrinfo(buf, strport, &hints, &aitop)) != 0
(gaierr = geta... &aitop)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7317 error("%.100s: unknown host. (%s)", buf,-
7318 ssh_gai_strerror(gaierr));-
7319 return
never executed: return -1;
-1;
never executed: return -1;
0
7320 }-
7321 for (ai = aitop; ai
aiDescription
TRUEnever evaluated
FALSEnever evaluated
; ai = ai->ai_next) {
0
7322-
7323 sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);-
7324 if (sock < 0
sock < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7325 debug2("socket: %.100s", strerror(-
7326 (*__errno_location ())-
7327 ));-
7328 continue;
never executed: continue;
0
7329 }-
7330-
7331 if (connect(sock, ai->ai_addr, ai->ai_addrlen) < 0
connect(sock, ...i_addrlen) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7332 debug2("connect %.100s port %u: %.100s", buf,-
7333 6000 + display_number, strerror(-
7334 (*__errno_location ())-
7335 ));-
7336 close(sock);-
7337 continue;
never executed: continue;
0
7338 }-
7339-
7340 break;
never executed: break;
0
7341 }-
7342 freeaddrinfo(aitop);-
7343 if (!ai
!aiDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
7344 error("connect %.100s port %u: %.100s", buf,-
7345 6000 + display_number, strerror(-
7346 (*__errno_location ())-
7347 ));-
7348 return
never executed: return -1;
-1;
never executed: return -1;
0
7349 }-
7350 set_nodelay(sock);-
7351 return
never executed: return sock;
sock;
never executed: return sock;
0
7352}-
7353-
7354-
7355-
7356-
7357-
7358-
7359void-
7360x11_request_forwarding_with_spoofing(struct ssh *ssh, int client_session_id,-
7361 const char *disp, const char *proto, const char *data, int want_reply)-
7362{-
7363 struct ssh_channels *sc = ssh->chanctxt;-
7364 u_int data_len = (u_int) strlen(data) / 2;-
7365 u_int i, value;-
7366 const char *cp;-
7367 char *new_data;-
7368 int r, screen_number;-
7369-
7370 if (sc->x11_saved_display ==
sc->x11_saved_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
7371 ((void *)0)
sc->x11_saved_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
7372 )-
7373 sc->x11_saved_display = xstrdup(disp);
never executed: sc->x11_saved_display = xstrdup(disp);
0
7374 else if (-
7375 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7376 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7377 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7378 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7379 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7380 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7381 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7382 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7383 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7384 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7385 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7386 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7387 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7388 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7389 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7390 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7391 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7392 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7393 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7394 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7395 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7396 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7397 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7398 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7399 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7400 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7401 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7402 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7403 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7404 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7405 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7406 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7407 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7408 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7409 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7410 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7411 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7412 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7413 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7414 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7415 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7416 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7417 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7418 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7419 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7420 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7421 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( disp ))[3] - __s2[3]);
0
7422 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( disp ))[3] - __s2[3]);
0
7423 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7424 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7425 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7426 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7427 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7428 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7429 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7430 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7431 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7432 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7433 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7434 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7435 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7436 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7437 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7438 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7439 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7440 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7441 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7442 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7443 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7444 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7445 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7446 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7447 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7448 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7449 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( sc->x11_saved_display ))[3] - __s2[3]);
0
7450 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( sc->x11_saved_display ))[3] - __s2[3]);
0
7451 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7452 disp
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7453 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7454 sc->x11_saved_display
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7455 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
7456 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
7457 error("x11_request_forwarding_with_spoofing: different "-
7458 "$DISPLAY already forwarded");-
7459 return;
never executed: return;
0
7460 }-
7461-
7462 cp = -
7463 (__extension__ (__builtin_constant_p (
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
0
7464 ':'
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
0
7465 )
__builtin_constant_p ( ':' )Description
TRUEnever evaluated
FALSEnever evaluated
&& !__builtin_constant_p (
!__builtin_constant_p ( disp )Description
TRUEnever evaluated
FALSEnever evaluated
0
7466 disp
!__builtin_constant_p ( disp )Description
TRUEnever evaluated
FALSEnever evaluated
0
7467 )
!__builtin_constant_p ( disp )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
7468 ':'
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
7469 ) == '\0'
( ':' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
? (char *) __rawmemchr (
0
7470 disp-
7471 , -
7472 ':'-
7473 ) : __builtin_strchr (-
7474 disp-
7475 , -
7476 ':'-
7477 )))-
7478 ;-
7479 if (cp
cpDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
7480 cp =
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7481 (__extension__ (__builtin_constant_p (
__builtin_constant_p ( '.' )Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7482 '.'
__builtin_constant_p ( '.' )Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7483 )
__builtin_constant_p ( '.' )Description
TRUEnever evaluated
FALSEnever evaluated
&& !__builtin_constant_p (
!__builtin_constant_p ( cp )Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7484 cp
!__builtin_constant_p ( cp )Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7485 )
!__builtin_constant_p ( cp )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
( '.' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7486 '.'
( '.' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7487 ) == '\0'
( '.' ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
? (char *) __rawmemchr (
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7488 cp
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7489 ,
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7490 '.'
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7491 ) : __builtin_strchr (
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7492 cp
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7493 ,
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7494 '.'
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7495 )))
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7496 ;
never executed: cp = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( cp ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( cp , '.' ) : __builtin_strchr ( cp , '.' ))) ;
0
7497 if (cp
cpDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
7498 screen_number = (u_int)strtonum(cp + 1, 0, 400,
never executed: screen_number = (u_int)strtonum(cp + 1, 0, 400, ((void *)0) );
0
7499 ((void *)0)
never executed: screen_number = (u_int)strtonum(cp + 1, 0, 400, ((void *)0) );
0
7500 );
never executed: screen_number = (u_int)strtonum(cp + 1, 0, 400, ((void *)0) );
0
7501 else-
7502 screen_number = 0;
never executed: screen_number = 0;
0
7503-
7504 if (sc->x11_saved_proto ==
sc->x11_saved_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
7505 ((void *)0)
sc->x11_saved_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
7506 ) {-
7507-
7508 sc->x11_saved_proto = xstrdup(proto);-
7509-
7510-
7511 sc->x11_saved_data = xmalloc(data_len);-
7512 for (i = 0; i < data_len
i < data_lenDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
7513 if (sscanf(data + 2 * i, "%2x", &value) != 1
sscanf(data + ..., &value) != 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7514 fatal("x11_request_forwarding: bad "
never executed: fatal("x11_request_forwarding: bad " "authentication data: %.100s", data);
0
7515 "authentication data: %.100s", data);
never executed: fatal("x11_request_forwarding: bad " "authentication data: %.100s", data);
0
7516 sc->x11_saved_data[i] = value;-
7517 }
never executed: end of block
0
7518 sc->x11_saved_data_len = data_len;-
7519-
7520-
7521 sc->x11_fake_data = xmalloc(data_len);-
7522 arc4random_buf(sc->x11_fake_data, data_len);-
7523 sc->x11_fake_data_len = data_len;-
7524 }
never executed: end of block
0
7525-
7526-
7527 new_data = tohex(sc->x11_fake_data, data_len);-
7528-
7529-
7530 channel_request_start(ssh, client_session_id, "x11-req", want_reply);-
7531 if ((
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u8(ssh, 0)) != 0
(r = sshpkt_pu...(ssh, 0)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7532 (
(r = sshpkt_pu..., proto)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, proto)) != 0
(r = sshpkt_pu..., proto)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7533 (
(r = sshpkt_pu...ew_data)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_cstring(ssh, new_data)) != 0
(r = sshpkt_pu...ew_data)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7534 (
(r = sshpkt_pu..._number)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_put_u32(ssh, screen_number)) != 0
(r = sshpkt_pu..._number)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7535 (
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshpkt_send(ssh)) != 0
(r = sshpkt_send(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
||
0
7536 (
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_packet_write_wait(ssh)) != 0
(r = ssh_packe...ait(ssh)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7537 fatal("%s: send x11-req: %s", __func__, ssh_err(r));
never executed: fatal("%s: send x11-req: %s", __func__, ssh_err(r));
0
7538 free(new_data);-
7539}
never executed: end of block
0
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2