| Line | Source | Count |
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | | - |
| 6 | | - |
| 7 | | - |
| 8 | | - |
| 9 | | - |
| 10 | | - |
| 11 | | - |
| 12 | | - |
| 13 | | - |
| 14 | | - |
| 15 | | - |
| 16 | | - |
| 17 | extern ServerOptions options; | - |
| 18 | extern u_char *session_id2; | - |
| 19 | extern u_int session_id2_len; | - |
| 20 | extern struct sshbuf *loginmsg; | - |
| 21 | | - |
| 22 | | - |
| 23 | | - |
| 24 | extern Authmethod method_none; | - |
| 25 | extern Authmethod method_pubkey; | - |
| 26 | extern Authmethod method_passwd; | - |
| 27 | extern Authmethod method_kbdint; | - |
| 28 | extern Authmethod method_hostbased; | - |
| 29 | | - |
| 30 | | - |
| 31 | | - |
| 32 | | - |
| 33 | Authmethod *authmethods[] = { | - |
| 34 | &method_none, | - |
| 35 | &method_pubkey, | - |
| 36 | | - |
| 37 | | - |
| 38 | | - |
| 39 | &method_passwd, | - |
| 40 | &method_kbdint, | - |
| 41 | &method_hostbased, | - |
| 42 | | - |
| 43 | ((void *)0) | - |
| 44 | | - |
| 45 | }; | - |
| 46 | | - |
| 47 | | - |
| 48 | | - |
| 49 | static int input_service_request(int, u_int32_t, struct ssh *); | - |
| 50 | static int input_userauth_request(int, u_int32_t, struct ssh *); | - |
| 51 | | - |
| 52 | | - |
| 53 | static Authmethod *authmethod_lookup(Authctxt *, const char *); | - |
| 54 | static char *authmethods_get(Authctxt *authctxt); | - |
| 55 | | - |
| 56 | | - |
| 57 | | - |
| 58 | | - |
| 59 | | - |
| 60 | static int list_starts_with(const char *, const char *, const char *); | - |
| 61 | | - |
| 62 | char * | - |
| 63 | auth2_read_banner(void) | - |
| 64 | { | - |
| 65 | struct stat st; | - |
| 66 | char *banner = | - |
| 67 | ((void *)0) | - |
| 68 | ; | - |
| 69 | size_t len, n; | - |
| 70 | int fd; | - |
| 71 | | - |
| 72 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
fd = open(options.banner, | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 73 | 00| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 74 | )) == -1| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 75 | return never executed: return ( ((void *)0) ); (never executed: return ( ((void *)0) ); | 0 |
| 76 | ((void *)0) never executed: return ( ((void *)0) ); | 0 |
| 77 | ); never executed: return ( ((void *)0) ); | 0 |
| 78 | if (fstat(fd, &st) == -1| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 79 | close(fd); | - |
| 80 | return never executed: return ( ((void *)0) ); (never executed: return ( ((void *)0) ); | 0 |
| 81 | ((void *)0) never executed: return ( ((void *)0) ); | 0 |
| 82 | ); never executed: return ( ((void *)0) ); | 0 |
| 83 | } | - |
| 84 | if (st.st_size <= 0| TRUE | never evaluated | | FALSE | never evaluated |
|| st.st_size > 1*1024*1024| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 85 | close(fd); | - |
| 86 | return never executed: return ( ((void *)0) ); (never executed: return ( ((void *)0) ); | 0 |
| 87 | ((void *)0) never executed: return ( ((void *)0) ); | 0 |
| 88 | ); never executed: return ( ((void *)0) ); | 0 |
| 89 | } | - |
| 90 | | - |
| 91 | len = (size_t)st.st_size; | - |
| 92 | banner = xmalloc(len + 1); | - |
| 93 | n = atomicio(read, fd, banner, len); | - |
| 94 | close(fd); | - |
| 95 | | - |
| 96 | if (n != len| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 97 | free(banner); | - |
| 98 | return never executed: return ( ((void *)0) ); (never executed: return ( ((void *)0) ); | 0 |
| 99 | ((void *)0) never executed: return ( ((void *)0) ); | 0 |
| 100 | ); never executed: return ( ((void *)0) ); | 0 |
| 101 | } | - |
| 102 | banner[n] = '\0'; | - |
| 103 | | - |
| 104 | return never executed: return (banner); (banner);never executed: return (banner); | 0 |
| 105 | } | - |
| 106 | | - |
| 107 | void | - |
| 108 | userauth_send_banner(const char *msg) | - |
| 109 | { | - |
| 110 | ssh_packet_start(active_state, (53)); | - |
| 111 | ssh_packet_put_cstring(active_state, (msg)); | - |
| 112 | ssh_packet_put_cstring(active_state, ("")); | - |
| 113 | ssh_packet_send(active_state); | - |
| 114 | debug("%s: sent", __func__); | - |
| 115 | } never executed: end of block | 0 |
| 116 | | - |
| 117 | static void | - |
| 118 | userauth_banner(void) | - |
| 119 | { | - |
| 120 | char *banner = | - |
| 121 | ((void *)0) | - |
| 122 | ; | - |
| 123 | | - |
| 124 | if (options.banner == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 125 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 126 | ) | - |
| 127 | return; never executed: return; | 0 |
| 128 | | - |
| 129 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
banner = (use_privsep| TRUE | never evaluated | | FALSE | never evaluated |
? mm_auth2_read_banner() : auth2_read_banner())) == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 130 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 131 | ) | - |
| 132 | goto never executed: goto done; done;never executed: goto done; | 0 |
| 133 | userauth_send_banner(banner); | - |
| 134 | | - |
| 135 | done: code before this statement never executed: done: | 0 |
| 136 | free(banner); | - |
| 137 | } never executed: end of block | 0 |
| 138 | | - |
| 139 | | - |
| 140 | | - |
| 141 | | - |
| 142 | void | - |
| 143 | do_authentication2(Authctxt *authctxt) | - |
| 144 | { | - |
| 145 | struct ssh *ssh = active_state; | - |
| 146 | ssh->authctxt = authctxt; | - |
| 147 | ssh_dispatch_init(ssh, &dispatch_protocol_error); | - |
| 148 | ssh_dispatch_set(ssh, 5, &input_service_request); | - |
| 149 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt->success); | - |
| 150 | ssh->authctxt = | - |
| 151 | ((void *)0) | - |
| 152 | ; | - |
| 153 | } never executed: end of block | 0 |
| 154 | | - |
| 155 | | - |
| 156 | static int | - |
| 157 | input_service_request(int type, u_int32_t seq, struct ssh *ssh) | - |
| 158 | { | - |
| 159 | Authctxt *authctxt = ssh->authctxt; | - |
| 160 | u_int len; | - |
| 161 | int acceptit = 0; | - |
| 162 | char *service = ssh_packet_get_cstring(active_state, (&len)); | - |
| 163 | do { int _len = ssh_packet_remaining(active_state); if (_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
) { logit("Packet integrity error (%d bytes remaining) at %s:%d", _len ,__FILE__, 188); ssh_packet_disconnect(active_state, "Packet integrity error."); }never executed: end of block } while (0); | 0 |
| 164 | | - |
| 165 | if (authctxt == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 166 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 167 | ) | - |
| 168 | fatal("input_service_request: no authctxt"); never executed: fatal("input_service_request: no authctxt"); | 0 |
| 169 | | - |
| 170 | if ( | - |
| 171 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 172 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 173 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 174 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 175 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 176 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 177 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 178 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 179 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 180 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 181 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 182 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 183 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 184 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 185 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 186 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 187 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 188 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 189 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 190 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 191 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 192 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 193 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 194 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 195 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 196 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 197 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 198 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 199 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 200 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 201 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 202 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 203 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 204 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 205 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 206 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 207 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 208 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 209 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 210 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 211 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 212 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 213 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 214 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 215 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 216 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 217 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 218 | service| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 219 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 220 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 221 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 222 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 223 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 224 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 225 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 226 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 227 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 228 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 229 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 230 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 231 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 232 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 233 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 234 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 235 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 236 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 237 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 238 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 239 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 240 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 241 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 242 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 243 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 244 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 245 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "ssh-userauth" ))[3] - __s2[3]); | 0 |
| 246 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "ssh-userauth" ))[3] - __s2[3]); | 0 |
| 247 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 248 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 249 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 250 | "ssh-userauth"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 251 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 252 | == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 253 | if (!authctxt->success| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 254 | acceptit = 1; | - |
| 255 | | - |
| 256 | ssh_dispatch_set(ssh, 50, &input_userauth_request); | - |
| 257 | } never executed: end of block | 0 |
| 258 | } never executed: end of block | 0 |
| 259 | | - |
| 260 | | - |
| 261 | if (acceptit| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 262 | ssh_packet_start(active_state, (6)); | - |
| 263 | ssh_packet_put_cstring(active_state, (service)); | - |
| 264 | ssh_packet_send(active_state); | - |
| 265 | packet_write_wait(); | - |
| 266 | } never executed: end of block else { | 0 |
| 267 | debug("bad service request %s", service); | - |
| 268 | packet_disconnect("bad service request %s", service); | - |
| 269 | } never executed: end of block | 0 |
| 270 | free(service); | - |
| 271 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 272 | } | - |
| 273 | | - |
| 274 | | - |
| 275 | static double | - |
| 276 | user_specific_delay(const char *user) | - |
| 277 | { | - |
| 278 | char b[512]; | - |
| 279 | size_t len = ssh_digest_bytes(4); | - |
| 280 | u_char *hash = xmalloc(len); | - |
| 281 | double delay; | - |
| 282 | | - |
| 283 | (void)snprintf(b, sizeof b, "%llu%s", | - |
| 284 | (unsigned long long)options.timing_secret, user); | - |
| 285 | if (ssh_digest_memory(4, b, strlen(b), hash, len) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 286 | fatal("%s: ssh_digest_memory", __func__); never executed: fatal("%s: ssh_digest_memory", __func__); | 0 |
| 287 | | - |
| 288 | delay = (double)(((u_int32_t)(((const u_char *)(hash))[0]) << 24) | ((u_int32_t)(((const u_char *)(hash))[1]) << 16) | ((u_int32_t)(((const u_char *)(hash))[2]) << 8) | (u_int32_t)(((const u_char *)(hash))[3])) / 1000 / 1000 / 1000 / 1000; | - |
| 289 | freezero(hash, len); | - |
| 290 | debug3("%s: user specific delay %0.3lfms", __func__, delay/1000); | - |
| 291 | return never executed: return 0.005 + delay; 0.005 + delay;never executed: return 0.005 + delay; | 0 |
| 292 | } | - |
| 293 | | - |
| 294 | static void | - |
| 295 | ensure_minimum_time_since(double start, double seconds) | - |
| 296 | { | - |
| 297 | struct timespec ts; | - |
| 298 | double elapsed = monotime_double() - start, req = seconds, remain; | - |
| 299 | | - |
| 300 | | - |
| 301 | while ((| TRUE | never evaluated | | FALSE | never evaluated |
remain = seconds - elapsed) < 0.0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 302 | seconds *= 2; never executed: seconds *= 2; | 0 |
| 303 | | - |
| 304 | ts.tv_sec = remain; | - |
| 305 | ts.tv_nsec = (remain - ts.tv_sec) * 1000000000; | - |
| 306 | debug3("%s: elapsed %0.3lfms, delaying %0.3lfms (requested %0.3lfms)", | - |
| 307 | __func__, elapsed*1000, remain*1000, req*1000); | - |
| 308 | nanosleep(&ts, | - |
| 309 | ((void *)0) | - |
| 310 | ); | - |
| 311 | } never executed: end of block | 0 |
| 312 | | - |
| 313 | | - |
| 314 | static int | - |
| 315 | input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | - |
| 316 | { | - |
| 317 | Authctxt *authctxt = ssh->authctxt; | - |
| 318 | Authmethod *m = | - |
| 319 | ((void *)0) | - |
| 320 | ; | - |
| 321 | char *user, *service, *method, *style = | - |
| 322 | ((void *)0) | - |
| 323 | ; | - |
| 324 | int authenticated = 0; | - |
| 325 | double tstart = monotime_double(); | - |
| 326 | | - |
| 327 | if (authctxt == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 328 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 329 | ) | - |
| 330 | fatal("input_userauth_request: no authctxt"); never executed: fatal("input_userauth_request: no authctxt"); | 0 |
| 331 | | - |
| 332 | user = ssh_packet_get_cstring(active_state, ( | - |
| 333 | ((void *)0) | - |
| 334 | )); | - |
| 335 | service = ssh_packet_get_cstring(active_state, ( | - |
| 336 | ((void *)0) | - |
| 337 | )); | - |
| 338 | method = ssh_packet_get_cstring(active_state, ( | - |
| 339 | ((void *)0) | - |
| 340 | )); | - |
| 341 | debug("userauth-request for user %s service %s method %s", user, service, method); | - |
| 342 | debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); | - |
| 343 | | - |
| 344 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
style = | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 345 | (__extension__ (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 346 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 347 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& !__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 348 | user| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 349 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 350 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 351 | ) == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
? (char *) __rawmemchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 352 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 353 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 354 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 355 | ) : __builtin_strchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 356 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 357 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 358 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 359 | )))| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 360 | ) != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 361 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 362 | ) | - |
| 363 | * never executed: *style++ = 0; style++ = 0;never executed: *style++ = 0; | 0 |
| 364 | | - |
| 365 | if (authctxt->attempt++ == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 366 | | - |
| 367 | authctxt->pw = (use_privsep| TRUE | never evaluated | | FALSE | never evaluated |
? mm_getpwnamallow(user) : getpwnamallow(user)); | 0 |
| 368 | authctxt->user = xstrdup(user); | - |
| 369 | if (authctxt->pw| TRUE | never evaluated | | FALSE | never evaluated |
&& | 0 |
| 370 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 371 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 372 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 373 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 374 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 375 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 376 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 377 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 378 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 379 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 380 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 381 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 382 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 383 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 384 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 385 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 386 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 387 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 388 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 389 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 390 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 391 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 392 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 393 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 394 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 395 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 396 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 397 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 398 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 399 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 400 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 401 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 402 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 403 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 404 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 405 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 406 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 407 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 408 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 409 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 410 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 411 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 412 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 413 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 414 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 415 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 416 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 417 | service| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 418 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 419 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 420 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 421 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 422 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 423 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 424 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 425 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 426 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 427 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 428 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 429 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 430 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 431 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 432 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 433 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 434 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 435 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 436 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 437 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 438 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 439 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 440 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 441 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 442 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 443 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 444 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | 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 |
| 445 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "ssh-connection" ))[3] - __s2[3]); | 0 |
| 446 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 447 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 448 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 449 | "ssh-connection"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 450 | )))); })| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 451 | ==0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 452 | authctxt->valid = 1; | - |
| 453 | debug2("%s: setting up authctxt for %s", | - |
| 454 | __func__, user); | - |
| 455 | } never executed: end of block else { | 0 |
| 456 | | - |
| 457 | authctxt->pw = fakepw(); | - |
| 458 | | - |
| 459 | | - |
| 460 | | - |
| 461 | } never executed: end of block | 0 |
| 462 | | - |
| 463 | | - |
| 464 | | - |
| 465 | | - |
| 466 | ssh_packet_set_log_preamble(ssh, "%suser %s", | - |
| 467 | authctxt->valid ? "authenticating " : "invalid ", user); | - |
| 468 | setproctitle("%s%s", authctxt->valid ? user : "unknown", | - |
| 469 | use_privsep ? " [net]" : ""); | - |
| 470 | authctxt->service = xstrdup(service); | - |
| 471 | authctxt->style = style| TRUE | never evaluated | | FALSE | never evaluated |
? xstrdup(style) : | 0 |
| 472 | ((void *)0) | - |
| 473 | ; | - |
| 474 | if (use_privsep| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 475 | mm_inform_authserv(service, style); never executed: mm_inform_authserv(service, style); | 0 |
| 476 | userauth_banner(); | - |
| 477 | if (auth2_setup_methods_lists(authctxt) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 478 | packet_disconnect("no authentication methods enabled"); never executed: packet_disconnect("no authentication methods enabled"); | 0 |
| 479 | } never executed: end of block else if ( | 0 |
| 480 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 481 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 482 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 483 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 484 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 485 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 486 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 487 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 488 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 489 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 490 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 491 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 492 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 493 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 494 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 495 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 496 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 497 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 498 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 499 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 500 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 501 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 502 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 503 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 504 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 505 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 506 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 507 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 508 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 509 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 510 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 511 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 512 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 513 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 514 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 515 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 516 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 517 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 518 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 519 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 520 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 521 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 522 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 523 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 524 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 525 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 526 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( user ))[3] - __s2[3]); | 0 |
| 527 | user| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( user ))[3] - __s2[3]); | 0 |
| 528 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 529 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 530 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 531 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 532 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 533 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 534 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 535 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 536 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 537 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 538 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 539 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 540 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 541 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 542 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 543 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 544 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 545 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 546 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 547 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 548 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 549 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 550 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 551 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 552 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 553 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 554 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( authctxt->user ))[3] - __s2[3]); | 0 |
| 555 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( authctxt->user ))[3] - __s2[3]); | 0 |
| 556 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 557 | user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 558 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 559 | authctxt->user| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 560 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 561 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
|| | 0 |
| 562 | | - |
| 563 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 564 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 565 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 566 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 567 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 568 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 569 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 570 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 571 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 572 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 573 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 574 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 575 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 576 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 577 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 578 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 579 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 580 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 581 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 582 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 583 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 584 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 585 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 586 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 587 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 588 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 589 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 590 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 591 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 592 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 593 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 594 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 595 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 596 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 597 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 598 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 599 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 600 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 601 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 602 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 603 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 604 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 605 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 606 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 607 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 608 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 609 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 610 | service| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( service ))[3] - __s2[3]); | 0 |
| 611 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 612 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 613 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 614 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 615 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 616 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 617 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 618 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 619 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 620 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 621 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 622 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 623 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 624 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 625 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 626 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 627 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 628 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 629 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 630 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 631 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 632 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 633 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 634 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 635 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 636 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 637 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( authctxt->service ))[3] - __s2[3]); | 0 |
| 638 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( authctxt->service ))[3] - __s2[3]); | 0 |
| 639 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 640 | service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 641 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 642 | authctxt->service| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 643 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 644 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 645 | packet_disconnect("Change of username or service not allowed: " | - |
| 646 | "(%s,%s) -> (%s,%s)", | - |
| 647 | authctxt->user, authctxt->service, user, service); | - |
| 648 | } never executed: end of block | 0 |
| 649 | | - |
| 650 | auth2_challenge_stop(ssh); | - |
| 651 | | - |
| 652 | | - |
| 653 | | - |
| 654 | | - |
| 655 | | - |
| 656 | | - |
| 657 | | - |
| 658 | auth2_authctxt_reset_info(authctxt); | - |
| 659 | authctxt->postponed = 0; | - |
| 660 | authctxt->server_caused_failure = 0; | - |
| 661 | | - |
| 662 | | - |
| 663 | m = authmethod_lookup(authctxt, method); | - |
| 664 | if (m != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 665 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 666 | && authctxt->failures < options.max_authtries| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 667 | debug2("input_userauth_request: try method %s", method); | - |
| 668 | authenticated = m->userauth(ssh); | - |
| 669 | } never executed: end of block | 0 |
| 670 | if (!authctxt->authenticated| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 671 | ensure_minimum_time_since(tstart, never executed: ensure_minimum_time_since(tstart, user_specific_delay(authctxt->user)); | 0 |
| 672 | user_specific_delay(authctxt->user)); never executed: ensure_minimum_time_since(tstart, user_specific_delay(authctxt->user)); | 0 |
| 673 | userauth_finish(ssh, authenticated, method, | - |
| 674 | ((void *)0) | - |
| 675 | ); | - |
| 676 | | - |
| 677 | free(service); | - |
| 678 | free(user); | - |
| 679 | free(method); | - |
| 680 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 681 | } | - |
| 682 | | - |
| 683 | void | - |
| 684 | userauth_finish(struct ssh *ssh, int authenticated, const char *method, | - |
| 685 | const char *submethod) | - |
| 686 | { | - |
| 687 | Authctxt *authctxt = ssh->authctxt; | - |
| 688 | char *methods; | - |
| 689 | int partial = 0; | - |
| 690 | | - |
| 691 | if (!authctxt->valid| TRUE | never evaluated | | FALSE | never evaluated |
&& authenticated| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 692 | fatal("INTERNAL ERROR: authenticated invalid user %s", never executed: fatal("INTERNAL ERROR: authenticated invalid user %s", authctxt->user); | 0 |
| 693 | authctxt->user); never executed: fatal("INTERNAL ERROR: authenticated invalid user %s", authctxt->user); | 0 |
| 694 | if (authenticated| TRUE | never evaluated | | FALSE | never evaluated |
&& authctxt->postponed| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 695 | fatal("INTERNAL ERROR: authenticated and postponed"); never executed: fatal("INTERNAL ERROR: authenticated and postponed"); | 0 |
| 696 | | - |
| 697 | | - |
| 698 | if (authenticated| TRUE | never evaluated | | FALSE | never evaluated |
&& authctxt->pw->pw_uid == 0| TRUE | never evaluated | | FALSE | never evaluated |
&& | 0 |
| 699 | !auth_root_allowed(ssh, method)| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 700 | authenticated = 0; | - |
| 701 | | - |
| 702 | | - |
| 703 | | - |
| 704 | } never executed: end of block | 0 |
| 705 | | - |
| 706 | if (authenticated| TRUE | never evaluated | | FALSE | never evaluated |
&& options.num_auth_methods != 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 707 | if (!auth2_update_methods_lists(authctxt, method, submethod)| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 708 | authenticated = 0; | - |
| 709 | partial = 1; | - |
| 710 | } never executed: end of block | 0 |
| 711 | } never executed: end of block | 0 |
| 712 | | - |
| 713 | | - |
| 714 | auth_log(authctxt, authenticated, partial, method, submethod); | - |
| 715 | | - |
| 716 | | - |
| 717 | if (authenticated| TRUE | never evaluated | | FALSE | never evaluated |
|| partial| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 718 | auth2_update_session_info(authctxt, method, submethod); never executed: auth2_update_session_info(authctxt, method, submethod); | 0 |
| 719 | | - |
| 720 | if (authctxt->postponed| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 721 | return; never executed: return; | 0 |
| 722 | if (authenticated == 1| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 723 | | - |
| 724 | ssh_dispatch_set(ssh, 50, &dispatch_protocol_ignore); | - |
| 725 | ssh_packet_start(active_state, (52)); | - |
| 726 | ssh_packet_send(active_state); | - |
| 727 | packet_write_wait(); | - |
| 728 | | - |
| 729 | authctxt->success = 1; | - |
| 730 | ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user); | - |
| 731 | } never executed: end of block else { | 0 |
| 732 | | - |
| 733 | if (!partial| TRUE | never evaluated | | FALSE | never evaluated |
&& !authctxt->server_caused_failure| TRUE | never evaluated | | FALSE | never evaluated |
&& | 0 |
| 734 | (authctxt->attempt > 1| TRUE | never evaluated | | FALSE | never evaluated |
|| | 0 |
| 735 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 736 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 737 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 738 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 739 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 740 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 741 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 742 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 743 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 744 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 745 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 746 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 747 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 748 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 749 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 750 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 751 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 752 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 753 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 754 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 755 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 756 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 757 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 758 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 759 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 760 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 761 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 762 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 763 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 764 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 765 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 766 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 767 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 768 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 769 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 770 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 771 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 772 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 773 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 774 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 775 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 776 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 777 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 778 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 779 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 780 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 781 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 782 | method| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 783 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 784 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 785 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 786 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 787 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 788 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 789 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 790 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 791 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 792 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 793 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 794 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 795 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 796 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 797 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 798 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 799 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 800 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 801 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 802 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 803 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 804 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 805 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 806 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 807 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 808 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 809 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "none" ))[3] - __s2[3]); | 0 |
| 810 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "none" ))[3] - __s2[3]); | 0 |
| 811 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 812 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 813 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 814 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 815 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 816 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
)) | 0 |
| 817 | authctxt->failures++; never executed: authctxt->failures++; | 0 |
| 818 | if (authctxt->failures >= options.max_authtries| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 819 | | - |
| 820 | | - |
| 821 | | - |
| 822 | auth_maxtries_exceeded(authctxt); | - |
| 823 | } never executed: end of block | 0 |
| 824 | methods = authmethods_get(authctxt); | - |
| 825 | debug3("%s: failure partial=%d next methods=\"%s\"", __func__, | - |
| 826 | partial, methods); | - |
| 827 | ssh_packet_start(active_state, (51)); | - |
| 828 | ssh_packet_put_cstring(active_state, (methods)); | - |
| 829 | ssh_packet_put_char(active_state, (partial)); | - |
| 830 | ssh_packet_send(active_state); | - |
| 831 | packet_write_wait(); | - |
| 832 | free(methods); | - |
| 833 | } never executed: end of block | 0 |
| 834 | } | - |
| 835 | | - |
| 836 | | - |
| 837 | | - |
| 838 | | - |
| 839 | | - |
| 840 | | - |
| 841 | int | - |
| 842 | auth2_method_allowed(Authctxt *authctxt, const char *method, | - |
| 843 | const char *submethod) | - |
| 844 | { | - |
| 845 | u_int i; | - |
| 846 | | - |
| 847 | | - |
| 848 | | - |
| 849 | | - |
| 850 | | - |
| 851 | if (options.num_auth_methods == 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 852 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 853 | for (i = 0; i < authctxt->num_auth_methods| TRUE | never evaluated | | FALSE | never evaluated |
; i++) { | 0 |
| 854 | if (list_starts_with(authctxt->auth_methods[i], method,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 855 | submethod) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 856 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 857 | } never executed: end of block | 0 |
| 858 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 859 | } | - |
| 860 | | - |
| 861 | static char * | - |
| 862 | authmethods_get(Authctxt *authctxt) | - |
| 863 | { | - |
| 864 | struct sshbuf *b; | - |
| 865 | char *list; | - |
| 866 | int i, r; | - |
| 867 | | - |
| 868 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
b = sshbuf_new()) == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 869 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 870 | ) | - |
| 871 | fatal("%s: sshbuf_new failed", __func__); never executed: fatal("%s: sshbuf_new failed", __func__); | 0 |
| 872 | for (i = 0; authmethods[i] != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 873 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 874 | ; i++) { | - |
| 875 | if ( | - |
| 876 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 877 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 878 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 879 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 880 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 881 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 882 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 883 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 884 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 885 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 886 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 887 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 888 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 889 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 890 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 891 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 892 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 893 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 894 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 895 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 896 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 897 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 898 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 899 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 900 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 901 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 902 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 903 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 904 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 905 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 906 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 907 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 908 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 909 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 910 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 911 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 912 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 913 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 914 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 915 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 916 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 917 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 918 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 919 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 920 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 921 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 922 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 923 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 924 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 925 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 926 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 927 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 928 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 929 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 930 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 931 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 932 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 933 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 934 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 935 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 936 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 937 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 938 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 939 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 940 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 941 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 942 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 943 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 944 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 945 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 946 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 947 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 948 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 949 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 950 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "none" ))[3] - __s2[3]); | 0 |
| 951 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "none" ))[3] - __s2[3]); | 0 |
| 952 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 953 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 954 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 955 | "none"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 956 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 957 | == 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 958 | continue; never executed: continue; | 0 |
| 959 | if (authmethods[i]->enabled == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 960 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 961 | || | - |
| 962 | *(| TRUE | never evaluated | | FALSE | never evaluated |
authmethods[i]->enabled) == 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 963 | continue; never executed: continue; | 0 |
| 964 | if (!auth2_method_allowed(authctxt, authmethods[i]->name,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 965 | | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 966 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 967 | )| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 968 | continue; never executed: continue; | 0 |
| 969 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_putf(b, "%s%s", sshbuf_len(b) ? "," : "",| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 970 | authmethods[i]->name)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 971 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); never executed: fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 0 |
| 972 | } never executed: end of block | 0 |
| 973 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
list = sshbuf_dup_string(b)) == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 974 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 975 | ) | - |
| 976 | fatal("%s: sshbuf_dup_string failed", __func__); never executed: fatal("%s: sshbuf_dup_string failed", __func__); | 0 |
| 977 | sshbuf_free(b); | - |
| 978 | return never executed: return list; list;never executed: return list; | 0 |
| 979 | } | - |
| 980 | | - |
| 981 | static Authmethod * | - |
| 982 | authmethod_lookup(Authctxt *authctxt, const char *name) | - |
| 983 | { | - |
| 984 | int i; | - |
| 985 | | - |
| 986 | if (name != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 987 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 988 | ) | - |
| 989 | for (i = 0; authmethods[i] != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 990 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 991 | ; i++) | - |
| 992 | if (authmethods[i]->enabled != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 993 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 994 | && | - |
| 995 | *(| TRUE | never evaluated | | FALSE | never evaluated |
authmethods[i]->enabled) != 0| TRUE | never evaluated | | FALSE | never evaluated |
&& | 0 |
| 996 | | - |
| 997 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 998 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 999 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1000 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1001 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1002 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1003 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1004 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1005 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1006 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1007 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1008 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1009 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1010 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1011 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1012 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1013 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1014 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1015 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1016 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1017 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1018 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1019 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1020 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1021 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1022 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1023 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1024 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1025 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1026 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1027 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1028 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1029 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1030 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1031 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1032 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1033 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1034 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1035 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1036 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1037 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1038 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1039 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1040 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1041 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1042 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1043 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); | 0 |
| 1044 | name| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); | 0 |
| 1045 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1046 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1047 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1048 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1049 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1050 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1051 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1052 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1053 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1054 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1055 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1056 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1057 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1058 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1059 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1060 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1061 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1062 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1063 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1064 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1065 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1066 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1067 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1068 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1069 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1070 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1071 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 1072 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 1073 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1074 | name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1075 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1076 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1077 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1078 | == 0| TRUE | never evaluated | | FALSE | never evaluated |
&& | 0 |
| 1079 | auth2_method_allowed(authctxt,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1080 | authmethods[i]->name, | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1081 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1082 | )| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1083 | return never executed: return authmethods[i]; authmethods[i];never executed: return authmethods[i]; | 0 |
| 1084 | debug2("Unrecognized authentication method name: %s", | - |
| 1085 | name ? name : "NULL"); | - |
| 1086 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
| 1087 | ((void *)0) never executed: return ((void *)0) ; | 0 |
| 1088 | ; never executed: return ((void *)0) ; | 0 |
| 1089 | } | - |
| 1090 | | - |
| 1091 | | - |
| 1092 | | - |
| 1093 | | - |
| 1094 | | - |
| 1095 | | - |
| 1096 | int | - |
| 1097 | auth2_methods_valid(const char *_methods, int need_enable) | - |
| 1098 | { | - |
| 1099 | char *methods, *omethods, *method, *p; | - |
| 1100 | u_int i, found; | - |
| 1101 | int ret = -1; | - |
| 1102 | | - |
| 1103 | if (*| TRUE | never evaluated | | FALSE | never evaluated |
_methods == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1104 | error("empty authentication method list"); | - |
| 1105 | return never executed: return -1; -1;never executed: return -1; | 0 |
| 1106 | } | - |
| 1107 | omethods = methods = xstrdup(_methods); | - |
| 1108 | while ((| TRUE | never evaluated | | FALSE | never evaluated |
method = | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1109 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1110 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1111 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1112 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1113 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1114 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1115 | ) == 1) && (__r0 = ((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1116 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1117 | ))[0], ((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1118 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1119 | ))[0] != '\0') ? ((__r1 = ((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1120 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1121 | ))[1], ((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1122 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1123 | ))[1] == '\0') ? __strsep_1c (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1124 | &methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1125 | , __r0) : ((__r2 = ((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1126 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1127 | ))[2], __r2 == '\0') ? __strsep_2c (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1128 | &methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1129 | , __r0, __r1) : (((const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1130 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1131 | ))[3] == '\0' ? __strsep_3c (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1132 | &methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1133 | , __r0, __r1, __r2) : __strsep_g (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1134 | &methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1135 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1136 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1137 | )))) : __strsep_g (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1138 | &methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1139 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1140 | ","| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1141 | )); })| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1142 | ) != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1143 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1144 | ) { | - |
| 1145 | for (found = i = 0; !found| TRUE | never evaluated | | FALSE | never evaluated |
&& authmethods[i] != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1146 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1147 | ; i++) { | - |
| 1148 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
p = | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1149 | (__extension__ (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1150 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1151 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& !__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1152 | method| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1153 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1154 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1155 | ) == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
? (char *) __rawmemchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1156 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1157 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1158 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1159 | ) : __builtin_strchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1160 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1161 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1162 | ':'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1163 | )))| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1164 | ) != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1165 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1166 | ) | - |
| 1167 | * never executed: *p = '\0'; p = '\0';never executed: *p = '\0'; | 0 |
| 1168 | if ( | - |
| 1169 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1170 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1171 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1172 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1173 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1174 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1175 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1176 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1177 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1178 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1179 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1180 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1181 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1182 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1183 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1184 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1185 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1186 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1187 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1188 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1189 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1190 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1191 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1192 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1193 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1194 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1195 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1196 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1197 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1198 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1199 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1200 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1201 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1202 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1203 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1204 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1205 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1206 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1207 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1208 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1209 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1210 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1211 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1212 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1213 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1214 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1215 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 1216 | method| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 1217 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1218 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1219 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1220 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1221 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1222 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1223 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1224 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1225 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1226 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1227 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1228 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1229 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1230 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1231 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1232 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1233 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1234 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1235 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1236 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1237 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1238 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1239 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1240 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1241 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1242 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1243 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 1244 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( authmethods[i]->name ))[3] - __s2[3]); | 0 |
| 1245 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1246 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1247 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1248 | authmethods[i]->name| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1249 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1250 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1251 | continue; never executed: continue; | 0 |
| 1252 | if (need_enable| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1253 | if (authmethods[i]->enabled == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1254 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1255 | || | - |
| 1256 | *(| TRUE | never evaluated | | FALSE | never evaluated |
authmethods[i]->enabled) == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1257 | error("Disabled method \"%s\" in " | - |
| 1258 | "AuthenticationMethods list \"%s\"", | - |
| 1259 | method, _methods); | - |
| 1260 | goto never executed: goto out; out;never executed: goto out; | 0 |
| 1261 | } | - |
| 1262 | } never executed: end of block | 0 |
| 1263 | found = 1; | - |
| 1264 | break; never executed: break; | 0 |
| 1265 | } | - |
| 1266 | if (!found| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1267 | error("Unknown authentication method \"%s\" in list", | - |
| 1268 | method); | - |
| 1269 | goto never executed: goto out; out;never executed: goto out; | 0 |
| 1270 | } | - |
| 1271 | } never executed: end of block | 0 |
| 1272 | ret = 0; | - |
| 1273 | out: code before this statement never executed: out: | 0 |
| 1274 | free(omethods); | - |
| 1275 | return never executed: return ret; ret;never executed: return ret; | 0 |
| 1276 | } | - |
| 1277 | int | - |
| 1278 | auth2_setup_methods_lists(Authctxt *authctxt) | - |
| 1279 | { | - |
| 1280 | u_int i; | - |
| 1281 | | - |
| 1282 | if (options.num_auth_methods == 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1283 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1284 | debug3("%s: checking methods", __func__); | - |
| 1285 | authctxt->auth_methods = xcalloc(options.num_auth_methods, | - |
| 1286 | sizeof(*authctxt->auth_methods)); | - |
| 1287 | authctxt->num_auth_methods = 0; | - |
| 1288 | for (i = 0; i < options.num_auth_methods| TRUE | never evaluated | | FALSE | never evaluated |
; i++) { | 0 |
| 1289 | if (auth2_methods_valid(options.auth_methods[i], 1) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1290 | logit("Authentication methods list \"%s\" contains " | - |
| 1291 | "disabled method, skipping", | - |
| 1292 | options.auth_methods[i]); | - |
| 1293 | continue; never executed: continue; | 0 |
| 1294 | } | - |
| 1295 | debug("authentication methods list %d: %s", | - |
| 1296 | authctxt->num_auth_methods, options.auth_methods[i]); | - |
| 1297 | authctxt->auth_methods[authctxt->num_auth_methods++] = | - |
| 1298 | xstrdup(options.auth_methods[i]); | - |
| 1299 | } never executed: end of block | 0 |
| 1300 | if (authctxt->num_auth_methods == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1301 | error("No AuthenticationMethods left after eliminating " | - |
| 1302 | "disabled methods"); | - |
| 1303 | return never executed: return -1; -1;never executed: return -1; | 0 |
| 1304 | } | - |
| 1305 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1306 | } | - |
| 1307 | | - |
| 1308 | static int | - |
| 1309 | list_starts_with(const char *methods, const char *method, | - |
| 1310 | const char *submethod) | - |
| 1311 | { | - |
| 1312 | size_t l = strlen(method); | - |
| 1313 | int match; | - |
| 1314 | const char *p; | - |
| 1315 | | - |
| 1316 | if ( | - |
| 1317 | (| TRUE | never evaluated | | FALSE | never evaluated |
__extension__ (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1318 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1319 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& ((__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1320 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1321 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1322 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1323 | ) < ((size_t) (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1324 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1325 | ))| TRUE | never evaluated | | FALSE | never evaluated |
) || (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1326 | method| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1327 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1328 | method| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1329 | ) < ((size_t) (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1330 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1331 | ))| TRUE | never evaluated | | FALSE | never evaluated |
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1332 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1333 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1334 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1335 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1336 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1337 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1338 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1339 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1340 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1341 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1342 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1343 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1344 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1345 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1346 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1347 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1348 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1349 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1350 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1351 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1352 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1353 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1354 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1355 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1356 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1357 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1358 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1359 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1360 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1361 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1362 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1363 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1364 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1365 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1366 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1367 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1368 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1369 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1370 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1371 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1372 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1373 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1374 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1375 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1376 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1377 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( methods ))[3] - __s2[3]); | 0 |
| 1378 | methods| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( methods ))[3] - __s2[3]); | 0 |
| 1379 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1380 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1381 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1382 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1383 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1384 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1385 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1386 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1387 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1388 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1389 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1390 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1391 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1392 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1393 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1394 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1395 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1396 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1397 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1398 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1399 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1400 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1401 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1402 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1403 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1404 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1405 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 1406 | method| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( method ))[3] - __s2[3]); | 0 |
| 1407 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1408 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1409 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1410 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1411 | )))); }) : strncmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1412 | methods| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1413 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1414 | method| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1415 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1416 | l| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1417 | ))) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1418 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1419 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1420 | p = methods + l; | - |
| 1421 | match = 1; | - |
| 1422 | if (*| TRUE | never evaluated | | FALSE | never evaluated |
p == ':'| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1423 | if (!submethod| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1424 | return never executed: return 3; 3;never executed: return 3; | 0 |
| 1425 | l = strlen(submethod); | - |
| 1426 | p += 1; | - |
| 1427 | if ( | - |
| 1428 | (| TRUE | never evaluated | | FALSE | never evaluated |
__extension__ (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1429 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1430 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& ((__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1431 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1432 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1433 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1434 | ) < ((size_t) (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1435 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1436 | ))| TRUE | never evaluated | | FALSE | never evaluated |
) || (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1437 | p| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1438 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1439 | p| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1440 | ) < ((size_t) (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1441 | l| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1442 | ))| TRUE | never evaluated | | FALSE | never evaluated |
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1443 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1444 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1445 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1446 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1447 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1448 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1449 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1450 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1451 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1452 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1453 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1454 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1455 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1456 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1457 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1458 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1459 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1460 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1461 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1462 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1463 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1464 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1465 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1466 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1467 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1468 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1469 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1470 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1471 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1472 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1473 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1474 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1475 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1476 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1477 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1478 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1479 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1480 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1481 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1482 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1483 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1484 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1485 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1486 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1487 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1488 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( submethod ))[3] - __s2[3]); | 0 |
| 1489 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( submethod ))[3] - __s2[3]); | 0 |
| 1490 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1491 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1492 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1493 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1494 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1495 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1496 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1497 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1498 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1499 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1500 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1501 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1502 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1503 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1504 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1505 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1506 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1507 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1508 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1509 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1510 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1511 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1512 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1513 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1514 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1515 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1516 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
| 1517 | p| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]); | 0 |
| 1518 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1519 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1520 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1521 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1522 | )))); }) : strncmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1523 | submethod| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1524 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1525 | p| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1526 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1527 | l| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1528 | )))| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1529 | ) | - |
| 1530 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1531 | p += l; | - |
| 1532 | match = 2; | - |
| 1533 | } never executed: end of block | 0 |
| 1534 | if (*| TRUE | never evaluated | | FALSE | never evaluated |
p != ','| TRUE | never evaluated | | FALSE | never evaluated |
&& *| TRUE | never evaluated | | FALSE | never evaluated |
p != '\0'| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1535 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1536 | return never executed: return match; match;never executed: return match; | 0 |
| 1537 | } | - |
| 1538 | | - |
| 1539 | | - |
| 1540 | | - |
| 1541 | | - |
| 1542 | | - |
| 1543 | | - |
| 1544 | static int | - |
| 1545 | remove_method(char **methods, const char *method, const char *submethod) | - |
| 1546 | { | - |
| 1547 | char *omethods = *methods, *p; | - |
| 1548 | size_t l = strlen(method); | - |
| 1549 | int match; | - |
| 1550 | | - |
| 1551 | match = list_starts_with(omethods, method, submethod); | - |
| 1552 | if (match != 1| TRUE | never evaluated | | FALSE | never evaluated |
&& match != 2| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1553 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1554 | p = omethods + l; | - |
| 1555 | if (submethod| TRUE | never evaluated | | FALSE | never evaluated |
&& match == 2| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1556 | p += 1 + strlen(submethod); never executed: p += 1 + strlen(submethod); | 0 |
| 1557 | if (*| TRUE | never evaluated | | FALSE | never evaluated |
p == ','| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1558 | p++; never executed: p++; | 0 |
| 1559 | *methods = xstrdup(p); | - |
| 1560 | free(omethods); | - |
| 1561 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 1562 | } | - |
| 1563 | | - |
| 1564 | | - |
| 1565 | | - |
| 1566 | | - |
| 1567 | | - |
| 1568 | | - |
| 1569 | | - |
| 1570 | int | - |
| 1571 | auth2_update_methods_lists(Authctxt *authctxt, const char *method, | - |
| 1572 | const char *submethod) | - |
| 1573 | { | - |
| 1574 | u_int i, found = 0; | - |
| 1575 | | - |
| 1576 | debug3("%s: updating methods list after \"%s\"", __func__, method); | - |
| 1577 | for (i = 0; i < authctxt->num_auth_methods| TRUE | never evaluated | | FALSE | never evaluated |
; i++) { | 0 |
| 1578 | if (!remove_method(&(authctxt->auth_methods[i]), method,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1579 | submethod)| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1580 | continue; never executed: continue; | 0 |
| 1581 | found = 1; | - |
| 1582 | if (*| TRUE | never evaluated | | FALSE | never evaluated |
authctxt->auth_methods[i] == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1583 | debug2("authentication methods list %d complete", i); | - |
| 1584 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 1585 | } | - |
| 1586 | debug3("authentication methods list %d remaining: \"%s\"", | - |
| 1587 | i, authctxt->auth_methods[i]); | - |
| 1588 | } never executed: end of block | 0 |
| 1589 | | - |
| 1590 | if (!found| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1591 | fatal("%s: method not in AuthenticationMethods", __func__); never executed: fatal("%s: method not in AuthenticationMethods", __func__); | 0 |
| 1592 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1593 | } | - |
| 1594 | | - |
| 1595 | | - |
| 1596 | void auth2_authctxt_reset_info(Authctxt *authctxt) | - |
| 1597 | { | - |
| 1598 | sshkey_free(authctxt->auth_method_key); | - |
| 1599 | free(authctxt->auth_method_info); | - |
| 1600 | authctxt->auth_method_key = | - |
| 1601 | ((void *)0) | - |
| 1602 | ; | - |
| 1603 | authctxt->auth_method_info = | - |
| 1604 | ((void *)0) | - |
| 1605 | ; | - |
| 1606 | } never executed: end of block | 0 |
| 1607 | | - |
| 1608 | | - |
| 1609 | void | - |
| 1610 | auth2_record_info(Authctxt *authctxt, const char *fmt, ...) | - |
| 1611 | { | - |
| 1612 | va_list ap; | - |
| 1613 | int i; | - |
| 1614 | | - |
| 1615 | free(authctxt->auth_method_info); | - |
| 1616 | authctxt->auth_method_info = | - |
| 1617 | ((void *)0) | - |
| 1618 | ; | - |
| 1619 | | - |
| 1620 | | - |
| 1621 | __builtin_va_start( | - |
| 1622 | ap | - |
| 1623 | , | - |
| 1624 | fmt | - |
| 1625 | ) | - |
| 1626 | ; | - |
| 1627 | i = vasprintf(&authctxt->auth_method_info, fmt, ap); | - |
| 1628 | | - |
| 1629 | __builtin_va_end( | - |
| 1630 | ap | - |
| 1631 | ) | - |
| 1632 | ; | - |
| 1633 | | - |
| 1634 | if (i < 0| TRUE | never evaluated | | FALSE | never evaluated |
|| authctxt->auth_method_info == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1635 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1636 | ) | - |
| 1637 | fatal("%s: vasprintf failed", __func__); never executed: fatal("%s: vasprintf failed", __func__); | 0 |
| 1638 | } never executed: end of block | 0 |
| 1639 | | - |
| 1640 | | - |
| 1641 | | - |
| 1642 | | - |
| 1643 | | - |
| 1644 | | - |
| 1645 | void | - |
| 1646 | auth2_record_key(Authctxt *authctxt, int authenticated, | - |
| 1647 | const struct sshkey *key) | - |
| 1648 | { | - |
| 1649 | struct sshkey **tmp, *dup; | - |
| 1650 | int r; | - |
| 1651 | | - |
| 1652 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshkey_from_private(key, &dup)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1653 | fatal("%s: copy key: %s", __func__, ssh_err(r)); never executed: fatal("%s: copy key: %s", __func__, ssh_err(r)); | 0 |
| 1654 | sshkey_free(authctxt->auth_method_key); | - |
| 1655 | authctxt->auth_method_key = dup; | - |
| 1656 | | - |
| 1657 | if (!authenticated| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1658 | return; never executed: return; | 0 |
| 1659 | | - |
| 1660 | | - |
| 1661 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshkey_from_private(key, &dup)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1662 | fatal("%s: copy key: %s", __func__, ssh_err(r)); never executed: fatal("%s: copy key: %s", __func__, ssh_err(r)); | 0 |
| 1663 | if (authctxt->nprev_keys >= 0x7fffffff| TRUE | never evaluated | | FALSE | never evaluated |
|| | 0 |
| 1664 | (| TRUE | never evaluated | | FALSE | never evaluated |
tmp = recallocarray(authctxt->prev_keys, authctxt->nprev_keys,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1665 | authctxt->nprev_keys + 1, sizeof(*authctxt->prev_keys))) == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1666 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1667 | ) | - |
| 1668 | fatal("%s: reallocarray failed", __func__); never executed: fatal("%s: reallocarray failed", __func__); | 0 |
| 1669 | authctxt->prev_keys = tmp; | - |
| 1670 | authctxt->prev_keys[authctxt->nprev_keys] = dup; | - |
| 1671 | authctxt->nprev_keys++; | - |
| 1672 | | - |
| 1673 | } never executed: end of block | 0 |
| 1674 | | - |
| 1675 | | - |
| 1676 | int | - |
| 1677 | auth2_key_already_used(Authctxt *authctxt, const struct sshkey *key) | - |
| 1678 | { | - |
| 1679 | u_int i; | - |
| 1680 | char *fp; | - |
| 1681 | | - |
| 1682 | for (i = 0; i < authctxt->nprev_keys| TRUE | never evaluated | | FALSE | never evaluated |
; i++) { | 0 |
| 1683 | if (sshkey_equal_public(key, authctxt->prev_keys[i])| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1684 | fp = sshkey_fingerprint(authctxt->prev_keys[i], | - |
| 1685 | options.fingerprint_hash, SSH_FP_DEFAULT); | - |
| 1686 | debug3("%s: key already used: %s %s", __func__, | - |
| 1687 | sshkey_type(authctxt->prev_keys[i]), | - |
| 1688 | fp == | - |
| 1689 | ((void *)0) | - |
| 1690 | ? "UNKNOWN" : fp); | - |
| 1691 | free(fp); | - |
| 1692 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 1693 | } | - |
| 1694 | } never executed: end of block | 0 |
| 1695 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 1696 | } | - |
| 1697 | | - |
| 1698 | | - |
| 1699 | | - |
| 1700 | | - |
| 1701 | | - |
| 1702 | void | - |
| 1703 | auth2_update_session_info(Authctxt *authctxt, const char *method, | - |
| 1704 | const char *submethod) | - |
| 1705 | { | - |
| 1706 | int r; | - |
| 1707 | | - |
| 1708 | if (authctxt->session_info == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1709 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1710 | ) { | - |
| 1711 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
authctxt->session_info = sshbuf_new()) == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1712 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1713 | ) | - |
| 1714 | fatal("%s: sshbuf_new", __func__); never executed: fatal("%s: sshbuf_new", __func__); | 0 |
| 1715 | } never executed: end of block | 0 |
| 1716 | | - |
| 1717 | | - |
| 1718 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_putf(authctxt->session_info, "%s%s%s",| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1719 | method, submethod == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1720 | ((void *)0) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1721 | ? "" : "/",| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1722 | submethod == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1723 | ((void *)0) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1724 | ? "" : submethod)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1725 | fatal("%s: append method: %s", __func__, ssh_err(r)); never executed: fatal("%s: append method: %s", __func__, ssh_err(r)); | 0 |
| 1726 | | - |
| 1727 | | - |
| 1728 | if (authctxt->auth_method_key != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1729 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1730 | ) { | - |
| 1731 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_put_u8(authctxt->session_info, ' ')) != 0| TRUE | never evaluated | | FALSE | never evaluated |
|| | 0 |
| 1732 | (| TRUE | never evaluated | | FALSE | never evaluated |
r = sshkey_format_text(authctxt->auth_method_key,| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1733 | authctxt->session_info)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1734 | fatal("%s: append key: %s", __func__, ssh_err(r)); never executed: fatal("%s: append key: %s", __func__, ssh_err(r)); | 0 |
| 1735 | } never executed: end of block | 0 |
| 1736 | | - |
| 1737 | if (authctxt->auth_method_info != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1738 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1739 | ) { | - |
| 1740 | | - |
| 1741 | if ( | - |
| 1742 | (| TRUE | never evaluated | | FALSE | never evaluated |
__extension__ (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1743 | '\n'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1744 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& !__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1745 | authctxt->auth_method_info| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1746 | )| TRUE | never evaluated | | FALSE | never evaluated |
&& (| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1747 | '\n'| TRUE | never evaluated | | FALSE | never evaluated |
| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1748 | ) == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
? (char *) __rawmemchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1749 | authctxt->auth_method_info| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1750 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1751 | '\n'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1752 | ) : __builtin_strchr (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1753 | authctxt->auth_method_info| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1754 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1755 | '\n'| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1756 | ))) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1757 | != | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1758 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1759 | ) | - |
| 1760 | fatal("%s: auth_method_info contains \\n", __func__); never executed: fatal("%s: auth_method_info contains \\n", __func__); | 0 |
| 1761 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_put_u8(authctxt->session_info, ' ')) != 0| TRUE | never evaluated | | FALSE | never evaluated |
|| | 0 |
| 1762 | (| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_putf(authctxt->session_info, "%s",| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 1763 | authctxt->auth_method_info)) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 1764 | fatal("%s: append method info: %s", | - |
| 1765 | __func__, ssh_err(r)); | - |
| 1766 | } never executed: end of block | 0 |
| 1767 | } never executed: end of block | 0 |
| 1768 | if ((| TRUE | never evaluated | | FALSE | never evaluated |
r = sshbuf_put_u8(authctxt->session_info, '\n')) != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 1769 | fatal("%s: append: %s", __func__, ssh_err(r)); never executed: fatal("%s: append: %s", __func__, ssh_err(r)); | 0 |
| 1770 | } never executed: end of block | 0 |
| | |