Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | struct ssh *active_state = | - |
14 | ((void *)0) | - |
15 | ; | - |
16 | | - |
17 | extern char *__progname; | - |
18 | | - |
19 | static int | - |
20 | valid_request(struct passwd *pw, char *host, struct sshkey **ret, | - |
21 | u_char *data, size_t datalen) | - |
22 | { | - |
23 | struct sshbuf *b; | - |
24 | struct sshkey *key = | - |
25 | ((void *)0) | - |
26 | ; | - |
27 | u_char type, *pkblob; | - |
28 | char *p; | - |
29 | size_t blen, len; | - |
30 | char *pkalg, *luser; | - |
31 | int r, pktype, fail; | - |
32 | | - |
33 | if (ret != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
34 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
35 | ) | - |
36 | * never executed: *ret = ((void *)0) ; ret = never executed: *ret = ((void *)0) ; | 0 |
37 | ((void *)0) never executed: *ret = ((void *)0) ; | 0 |
38 | ; never executed: *ret = ((void *)0) ; | 0 |
39 | fail = 0; | - |
40 | | - |
41 | if ((TRUE | never evaluated | FALSE | never evaluated |
b = sshbuf_from(data, datalen)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
42 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
43 | ) | - |
44 | fatal("%s: sshbuf_from failed", __func__); never executed: fatal("%s: sshbuf_from failed", __func__); | 0 |
45 | | - |
46 | | - |
47 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_string(b, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
48 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
49 | , &len)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
50 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
51 | if (len != 20TRUE | never evaluated | FALSE | never evaluated |
&& len != 32TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
52 | fail++; never executed: fail++; | 0 |
53 | | - |
54 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_u8(b, &type)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
55 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
56 | if (type != 50TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
57 | fail++; never executed: fail++; | 0 |
58 | | - |
59 | | - |
60 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_string_direct(b, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
61 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
62 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
63 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
64 | )) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
65 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
66 | | - |
67 | | - |
68 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_cstring(b, &p, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
69 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
70 | )) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
71 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
72 | if ( | - |
73 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
74 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
75 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
76 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
77 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
78 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
79 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
80 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
81 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
82 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
83 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
84 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
85 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
86 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
87 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
88 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
89 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
90 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
91 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
92 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
93 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
94 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
95 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
96 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
97 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
99 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
100 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
101 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
102 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
103 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
104 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
105 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
106 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
107 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
108 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
109 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
110 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
111 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
112 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
113 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
114 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
115 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
116 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
117 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
118 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
119 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "ssh-connection" ))[3] - __s2[3]); | 0 |
120 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "ssh-connection" ))[3] - __s2[3]); | 0 |
121 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
122 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
123 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
124 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
125 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
126 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
127 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
128 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
129 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
130 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
131 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
133 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
134 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
135 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
136 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
137 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
138 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
139 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
140 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
141 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
142 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
143 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
144 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
145 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
146 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
148 | pTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
149 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
150 | "ssh-connection"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
151 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
152 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
153 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
154 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
155 | fail++; never executed: fail++; | 0 |
156 | free(p); | - |
157 | | - |
158 | | - |
159 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_cstring(b, &p, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
160 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
161 | )) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
162 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
163 | if ( | - |
164 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
166 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
167 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
168 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
169 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
170 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
171 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
172 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
173 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
174 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
175 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
176 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
177 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
178 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
179 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
180 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
181 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
183 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
184 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
185 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
186 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
187 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
188 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
189 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
190 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
191 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
192 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
193 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
194 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
195 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
196 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
197 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
198 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
199 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
200 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
201 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
202 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
203 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
204 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
205 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
206 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
207 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
208 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
209 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
210 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "hostbased" ))[3] - __s2[3]); | 0 |
211 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "hostbased" ))[3] - __s2[3]); | 0 |
212 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
213 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
214 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
215 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
216 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
217 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
218 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
219 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
220 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
221 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
222 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
223 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
224 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
225 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
226 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
227 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
228 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
229 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
230 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
231 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
232 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
233 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
234 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
235 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
236 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
238 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
239 | pTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
240 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
241 | "hostbased"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
242 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
243 | pTRUE | never evaluated | FALSE | never evaluated |
| 0 |
244 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
245 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
246 | fail++; never executed: fail++; | 0 |
247 | free(p); | - |
248 | | - |
249 | | - |
250 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_cstring(b, &pkalg, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
251 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
252 | )) != 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
253 | (TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_string(b, &pkblob, &blen)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
254 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
255 | | - |
256 | pktype = sshkey_type_from_name(pkalg); | - |
257 | if (pktype == KEY_UNSPECTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
258 | fail++; never executed: fail++; | 0 |
259 | else if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshkey_from_blob(pkblob, blen, &key)) != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
260 | error("%s: bad key blob: %s", __func__, ssh_err(r)); | - |
261 | fail++; | - |
262 | } never executed: end of block else if (key->type != pktypeTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
263 | fail++; never executed: fail++; | 0 |
264 | free(pkalg); | - |
265 | free(pkblob); | - |
266 | | - |
267 | | - |
268 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_cstring(b, &p, &len)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
269 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
270 | debug2("%s: check expect chost %s got %s", __func__, host, p); | - |
271 | if (strlen(host) != len - 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
272 | fail++; never executed: fail++; | 0 |
273 | else if (p[len - 1] != '.'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
274 | fail++; never executed: fail++; | 0 |
275 | else if (strncasecmp(host, p, len - 1) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
276 | fail++; never executed: fail++; | 0 |
277 | free(p); | - |
278 | | - |
279 | | - |
280 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_cstring(b, &luser, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
281 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
282 | )) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
283 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
284 | | - |
285 | if ( | - |
286 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
287 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
288 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
289 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
290 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
291 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
292 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
293 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
294 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
295 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
296 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
297 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
298 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
299 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
300 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
301 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
302 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
303 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
304 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
305 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
306 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
307 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
308 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
309 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
310 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
311 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
312 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
313 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
314 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
315 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
316 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
317 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
318 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
319 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
320 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
321 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
322 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
323 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
324 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
325 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
326 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
327 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
328 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
329 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
330 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
331 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
332 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( pw->pw_name ))[3] - __s2[3]); | 0 |
333 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( pw->pw_name ))[3] - __s2[3]); | 0 |
334 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
335 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
336 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
337 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
338 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
339 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
340 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
341 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
342 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
343 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
344 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
345 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
346 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
347 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
348 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
349 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
350 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
351 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
352 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
353 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
354 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
355 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
356 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
357 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
358 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
359 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
360 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( luser ))[3] - __s2[3]); | 0 |
361 | luserTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( luser ))[3] - __s2[3]); | 0 |
362 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
363 | pw->pw_nameTRUE | never evaluated | FALSE | never evaluated |
| 0 |
364 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
365 | luserTRUE | never evaluated | FALSE | never evaluated |
| 0 |
366 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
367 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
368 | fail++; never executed: fail++; | 0 |
369 | free(luser); | - |
370 | | - |
371 | | - |
372 | if (sshbuf_len(b) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
373 | fail++; never executed: fail++; | 0 |
374 | sshbuf_free(b); | - |
375 | | - |
376 | debug3("%s: fail %d", __func__, fail); | - |
377 | | - |
378 | if (failTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
379 | sshkey_free(key); never executed: sshkey_free(key); | 0 |
380 | else if (ret != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
381 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
382 | ) | - |
383 | * never executed: *ret = key; ret = key;never executed: *ret = key; | 0 |
384 | | - |
385 | return never executed: return (fail ? -1 : 0); (failTRUE | never evaluated | FALSE | never evaluated |
? -1 : 0);never executed: return (fail ? -1 : 0); | 0 |
386 | } | - |
387 | | - |
388 | int | - |
389 | main(int argc, char **argv) | - |
390 | { | - |
391 | struct sshbuf *b; | - |
392 | Options options; | - |
393 | | - |
394 | struct sshkey *keys[5], *key = | - |
395 | ((void *)0) | - |
396 | ; | - |
397 | struct passwd *pw; | - |
398 | int r, key_fd[5], i, found, version = 2, fd; | - |
399 | u_char *signature, *data, rver; | - |
400 | char *host, *fp; | - |
401 | size_t slen, dlen; | - |
402 | | - |
403 | u_int32_t rnd[256]; | - |
404 | | - |
405 | | - |
406 | ssh_malloc_init(); | - |
407 | if (pledge("stdio rpath getpw dns id", TRUE | never evaluated | FALSE | never evaluated |
| 0 |
408 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
409 | ) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
410 | fatal("%s: pledge: %s", __progname, strerror( never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
411 | (*__errno_location ()) never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
412 | )); never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
413 | | - |
414 | | - |
415 | if ((TRUE | never evaluated | FALSE | never evaluated |
fd = open(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
416 | "/dev/null"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
417 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
418 | 02TRUE | never evaluated | FALSE | never evaluated |
| 0 |
419 | )) < 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
420 | exit(1); never executed: exit(1); | 0 |
421 | | - |
422 | if (fd > 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
423 | close(fd); never executed: close(fd); | 0 |
424 | | - |
425 | i = 0; | - |
426 | | - |
427 | key_fd[i++] = open("/var/tmp/openssh-test/etc" "/ssh_host_dsa_key", | - |
428 | 00 | - |
429 | ); | - |
430 | key_fd[i++] = open("/var/tmp/openssh-test/etc" "/ssh_host_ecdsa_key", | - |
431 | 00 | - |
432 | ); | - |
433 | key_fd[i++] = open("/var/tmp/openssh-test/etc" "/ssh_host_ed25519_key", | - |
434 | 00 | - |
435 | ); | - |
436 | key_fd[i++] = open("/var/tmp/openssh-test/etc" "/ssh_host_xmss_key", | - |
437 | 00 | - |
438 | ); | - |
439 | key_fd[i++] = open("/var/tmp/openssh-test/etc" "/ssh_host_rsa_key", | - |
440 | 00 | - |
441 | ); | - |
442 | | - |
443 | if ((TRUE | never evaluated | FALSE | never evaluated |
pw = getpwuid(getuid())) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
444 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
445 | ) | - |
446 | fatal("getpwuid failed"); never executed: fatal("getpwuid failed"); | 0 |
447 | pw = pwcopy(pw); | - |
448 | | - |
449 | permanently_set_uid(pw); | - |
450 | | - |
451 | seed_rng(); | - |
452 | | - |
453 | | - |
454 | | - |
455 | | - |
456 | | - |
457 | | - |
458 | initialize_options(&options); | - |
459 | (void)read_config_file("/var/tmp/openssh-test/etc" "/ssh_config", pw, "", "", &options, 0); | - |
460 | fill_default_options(&options); | - |
461 | if (options.enable_ssh_keysign != 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
462 | fatal("ssh-keysign not enabled in %s", never executed: fatal("ssh-keysign not enabled in %s", "/var/tmp/openssh-test/etc" "/ssh_config"); | 0 |
463 | "/var/tmp/openssh-test/etc" "/ssh_config"); never executed: fatal("ssh-keysign not enabled in %s", "/var/tmp/openssh-test/etc" "/ssh_config"); | 0 |
464 | | - |
465 | for (i = found = 0; i < 5TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
466 | if (key_fd[i] != -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
467 | found = 1; never executed: found = 1; | 0 |
468 | } never executed: end of block | 0 |
469 | if (found == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
470 | fatal("could not open any host key"); never executed: fatal("could not open any host key"); | 0 |
471 | | - |
472 | | - |
473 | | - |
474 | OPENSSL_add_all_algorithms_noconf() | - |
475 | ; | - |
476 | arc4random_buf(rnd, sizeof(rnd)); | - |
477 | RAND_seed(rnd, sizeof(rnd)); | - |
478 | | - |
479 | | - |
480 | found = 0; | - |
481 | for (i = 0; i < 5TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
482 | keys[i] = | - |
483 | ((void *)0) | - |
484 | ; | - |
485 | if (key_fd[i] == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
486 | continue; never executed: continue; | 0 |
487 | r = sshkey_load_private_type_fd(key_fd[i], KEY_UNSPEC, | - |
488 | | - |
489 | ((void *)0) | - |
490 | , &key, | - |
491 | ((void *)0) | - |
492 | ); | - |
493 | close(key_fd[i]); | - |
494 | if (r != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
495 | debug("parse key %d: %s", i, ssh_err(r)); never executed: debug("parse key %d: %s", i, ssh_err(r)); | 0 |
496 | else if (key != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
497 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
498 | ) { | - |
499 | keys[i] = key; | - |
500 | found = 1; | - |
501 | } never executed: end of block | 0 |
502 | } never executed: end of block | 0 |
503 | if (!foundTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
504 | fatal("no hostkey found"); never executed: fatal("no hostkey found"); | 0 |
505 | | - |
506 | if (pledge("stdio dns", TRUE | never evaluated | FALSE | never evaluated |
| 0 |
507 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
508 | ) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
509 | fatal("%s: pledge: %s", __progname, strerror( never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
510 | (*__errno_location ()) never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
511 | )); never executed: fatal("%s: pledge: %s", __progname, strerror( (*__errno_location ()) )); | 0 |
512 | | - |
513 | if ((TRUE | never evaluated | FALSE | never evaluated |
b = sshbuf_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
514 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
515 | ) | - |
516 | fatal("%s: sshbuf_new failed", __progname); never executed: fatal("%s: sshbuf_new failed", __progname); | 0 |
517 | if (ssh_msg_recv(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
518 | 0TRUE | never evaluated | FALSE | never evaluated |
| 0 |
519 | , b) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
520 | fatal("ssh_msg_recv failed"); never executed: fatal("ssh_msg_recv failed"); | 0 |
521 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_u8(b, &rver)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
522 | fatal("%s: buffer error: %s", __progname, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __progname, ssh_err(r)); | 0 |
523 | if (rver != versionTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
524 | fatal("bad version: received %d, expected %d", rver, version); never executed: fatal("bad version: received %d, expected %d", rver, version); | 0 |
525 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_u32(b, (u_int *)&fd)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
526 | fatal("%s: buffer error: %s", __progname, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __progname, ssh_err(r)); | 0 |
527 | if (fd < 0TRUE | never evaluated | FALSE | never evaluated |
|| fd == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
528 | 0TRUE | never evaluated | FALSE | never evaluated |
| 0 |
529 | || fd == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
530 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
531 | ) | - |
532 | fatal("bad fd"); never executed: fatal("bad fd"); | 0 |
533 | if ((TRUE | never evaluated | FALSE | never evaluated |
host = get_local_name(fd)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
534 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
535 | ) | - |
536 | fatal("cannot get local name for fd"); never executed: fatal("cannot get local name for fd"); | 0 |
537 | | - |
538 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_get_string(b, &data, &dlen)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
539 | fatal("%s: buffer error: %s", __progname, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __progname, ssh_err(r)); | 0 |
540 | if (valid_request(pw, host, &key, data, dlen) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
541 | fatal("not a valid request"); never executed: fatal("not a valid request"); | 0 |
542 | free(host); | - |
543 | | - |
544 | found = 0; | - |
545 | for (i = 0; i < 5TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
546 | if (keys[i] != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
547 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
548 | && | - |
549 | sshkey_equal_public(key, keys[i])TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
550 | found = 1; | - |
551 | break; never executed: break; | 0 |
552 | } | - |
553 | } never executed: end of block | 0 |
554 | if (!foundTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
555 | if ((TRUE | never evaluated | FALSE | never evaluated |
fp = sshkey_fingerprint(key, options.fingerprint_hash,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
556 | SSH_FP_DEFAULT)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
557 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
558 | ) | - |
559 | fatal("%s: sshkey_fingerprint failed", __progname); never executed: fatal("%s: sshkey_fingerprint failed", __progname); | 0 |
560 | fatal("no matching hostkey found for key %s %s", | - |
561 | sshkey_type(key), fp ? fp : ""); | - |
562 | } never executed: end of block | 0 |
563 | | - |
564 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshkey_sign(keys[i], &signature, &slen, data, dlen, TRUE | never evaluated | FALSE | never evaluated |
| 0 |
565 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
566 | , 0))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
567 | != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
568 | fatal("sshkey_sign failed: %s", ssh_err(r)); never executed: fatal("sshkey_sign failed: %s", ssh_err(r)); | 0 |
569 | free(data); | - |
570 | | - |
571 | | - |
572 | sshbuf_reset(b); | - |
573 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = sshbuf_put_string(b, signature, slen)) != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
574 | fatal("%s: buffer error: %s", __progname, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __progname, ssh_err(r)); | 0 |
575 | if (ssh_msg_send(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
576 | 1TRUE | never evaluated | FALSE | never evaluated |
| 0 |
577 | , version, b) == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
578 | fatal("ssh_msg_send failed"); never executed: fatal("ssh_msg_send failed"); | 0 |
579 | | - |
580 | return never executed: return (0); (0);never executed: return (0); | 0 |
581 | } | - |
| | |