OpenCoverage

monitor_fdpass.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/monitor_fdpass.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-
15-
16-
17-
18int-
19mm_send_fd(int sock, int fd)-
20{-
21-
22 struct msghdr msg;-
23-
24 union {-
25 struct cmsghdr hdr;-
26 char buf[-
27 ((((-
28 sizeof(int)-
29 ) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) + (((sizeof (struct cmsghdr)) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)))-
30 ];-
31 } cmsgbuf;-
32 struct cmsghdr *cmsg;-
33-
34 struct iovec vec;-
35 char ch = '\0';-
36 ssize_t n;-
37 struct pollfd pfd;-
38-
39 memset(&msg, 0, sizeof(msg));-
40-
41-
42-
43-
44 memset(&cmsgbuf, 0, sizeof(cmsgbuf));-
45 msg.msg_control = (caddr_t)&cmsgbuf.buf;-
46 msg.msg_controllen = sizeof(cmsgbuf.buf);-
47 cmsg = -
48 ((
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
size_t) (
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
0
49 &msg
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
0
50 )->msg_controllen >= sizeof (struct cmsghdr)
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
? (struct cmsghdr *) (
0
51 &msg-
52 )->msg_control : (struct cmsghdr *) 0)-
53 ;-
54 cmsg->cmsg_len = -
55 ((((sizeof (struct cmsghdr)) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) + (-
56 sizeof(int)-
57 ))-
58 ;-
59 cmsg->cmsg_level = -
60 1-
61 ;-
62 cmsg->cmsg_type = -
63 SCM_RIGHTS-
64 ;-
65 *(int *)-
66 ((-
67 cmsg-
68 )->__cmsg_data) -
69 = fd;-
70-
71-
72 vec.iov_base = &ch;-
73 vec.iov_len = 1;-
74 msg.msg_iov = &vec;-
75 msg.msg_iovlen = 1;-
76-
77 pfd.fd = sock;-
78 pfd.events = -
79 0x004-
80 ;-
81 while ((
(n = sendmsg(s...msg, 0)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
n = sendmsg(sock, &msg, 0)) == -1
(n = sendmsg(s...msg, 0)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
82 (-
83 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
84 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
85 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
86 || -
87 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
88 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
89 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
90 )) {-
91 debug3("%s: sendmsg(%d): %s", __func__, fd, strerror(-
92 (*__errno_location ())-
93 ));-
94 (void)poll(&pfd, 1, -1);-
95 }
never executed: end of block
0
96 if (n == -1
n == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
97 error("%s: sendmsg(%d): %s", __func__, fd,-
98 strerror(-
99 (*__errno_location ())-
100 ));-
101 return
never executed: return -1;
-1;
never executed: return -1;
0
102 }-
103-
104 if (n != 1
n != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
105 error("%s: sendmsg: expected sent 1 got %zd", __func__, n);-
106 return
never executed: return -1;
-1;
never executed: return -1;
0
107 }-
108 return
never executed: return 0;
0;
never executed: return 0;
0
109-
110-
111-
112-
113}-
114-
115int-
116mm_receive_fd(int sock)-
117{-
118-
119 struct msghdr msg;-
120-
121 union {-
122 struct cmsghdr hdr;-
123 char buf[-
124 ((((-
125 sizeof(int)-
126 ) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) + (((sizeof (struct cmsghdr)) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)))-
127 ];-
128 } cmsgbuf;-
129 struct cmsghdr *cmsg;-
130-
131 struct iovec vec;-
132 ssize_t n;-
133 char ch;-
134 int fd;-
135 struct pollfd pfd;-
136-
137 memset(&msg, 0, sizeof(msg));-
138 vec.iov_base = &ch;-
139 vec.iov_len = 1;-
140 msg.msg_iov = &vec;-
141 msg.msg_iovlen = 1;-
142-
143-
144-
145-
146 memset(&cmsgbuf, 0, sizeof(cmsgbuf));-
147 msg.msg_control = &cmsgbuf.buf;-
148 msg.msg_controllen = sizeof(cmsgbuf.buf);-
149-
150-
151 pfd.fd = sock;-
152 pfd.events = -
153 0x001-
154 ;-
155 while ((
(n = recvmsg(s...msg, 0)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
n = recvmsg(sock, &msg, 0)) == -1
(n = recvmsg(s...msg, 0)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
156 (-
157 (*
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
158 ==
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
159 11
(*__errno_location ()) == 11Description
TRUEnever evaluated
FALSEnever evaluated
0
160 || -
161 (*
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
162 ==
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
163 4
(*__errno_location ()) == 4Description
TRUEnever evaluated
FALSEnever evaluated
0
164 )) {-
165 debug3("%s: recvmsg: %s", __func__, strerror(-
166 (*__errno_location ())-
167 ));-
168 (void)poll(&pfd, 1, -1);-
169 }
never executed: end of block
0
170 if (n == -1
n == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
171 error("%s: recvmsg: %s", __func__, strerror(-
172 (*__errno_location ())-
173 ));-
174 return
never executed: return -1;
-1;
never executed: return -1;
0
175 }-
176-
177 if (n != 1
n != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
178 error("%s: recvmsg: expected received 1 got %zd", __func__, n);-
179 return
never executed: return -1;
-1;
never executed: return -1;
0
180 }-
181-
182-
183-
184-
185-
186-
187-
188 cmsg = -
189 ((
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
size_t) (
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
0
190 &msg
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
0
191 )->msg_controllen >= sizeof (struct cmsghdr)
(size_t) ( &ms...truct cmsghdr)Description
TRUEnever evaluated
FALSEnever evaluated
? (struct cmsghdr *) (
0
192 &msg-
193 )->msg_control : (struct cmsghdr *) 0)-
194 ;-
195 if (cmsg ==
cmsg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ((void *)0)
cmsg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
197 ) {-
198 error("%s: no message header", __func__);-
199 return
never executed: return -1;
-1;
never executed: return -1;
0
200 }-
201-
202-
203 if (cmsg->cmsg_type !=
cmsg->cmsg_type != SCM_RIGHTSDescription
TRUEnever evaluated
FALSEnever evaluated
0
204 SCM_RIGHTS
cmsg->cmsg_type != SCM_RIGHTSDescription
TRUEnever evaluated
FALSEnever evaluated
0
205 ) {-
206 error("%s: expected type %d got %d", __func__,-
207 -
208 SCM_RIGHTS-
209 , cmsg->cmsg_type);-
210 return
never executed: return -1;
-1;
never executed: return -1;
0
211 }-
212-
213 fd = (*(int *)-
214 ((-
215 cmsg-
216 )->__cmsg_data)-
217 );-
218-
219 return
never executed: return fd;
fd;
never executed: return fd;
0
220-
221-
222-
223-
224}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2