diff options
author | Maria Matejka <mq@ucw.cz> | 2022-10-04 13:20:04 +0200 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2022-10-05 16:33:34 +0200 |
commit | 4d687d7aecb2bc4b695d26418bc761acb1d15c76 (patch) | |
tree | 1f2ff2842dd2902fc52b635df784aadd1edafe76 /sysdep | |
parent | 1e01721525032bf3608aa457cafde58543b8a977 (diff) |
Fixed previously untested paths in RPKI
Diffstat (limited to 'sysdep')
-rw-r--r-- | sysdep/unix/io-loop.c | 3 | ||||
-rw-r--r-- | sysdep/unix/io.c | 18 |
2 files changed, 12 insertions, 9 deletions
diff --git a/sysdep/unix/io-loop.c b/sysdep/unix/io-loop.c index dbca36e9..b588b736 100644 --- a/sysdep/unix/io-loop.c +++ b/sysdep/unix/io-loop.c @@ -252,6 +252,9 @@ sk_start(sock *s) static void sockets_remove(struct birdloop *loop, sock *s) { + if (!enlisted(&s->n)) + return; + rem_node(&s->n); loop->sock_num--; diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 6454f15f..d4a3d798 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -774,8 +774,7 @@ sk_ssh_free(sock *s) if (ssh->channel) { - if (ssh_channel_is_open(ssh->channel)) - ssh_channel_close(ssh->channel); + ssh_channel_close(ssh->channel); ssh_channel_free(ssh->channel); ssh->channel = NULL; } @@ -1153,33 +1152,34 @@ sk_ssh_connect(sock *s) int server_identity_is_ok = 1; /* Check server identity */ - switch (ssh_is_server_known(s->ssh->session)) + switch (ssh_session_is_known_server(s->ssh->session)) { #define LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s,msg,args...) log(L_WARN "SSH Identity %s@%s:%u: " msg, (s)->ssh->username, (s)->host, (s)->dport, ## args); - case SSH_SERVER_KNOWN_OK: + case SSH_KNOWN_HOSTS_OK: /* The server is known and has not changed. */ break; - case SSH_SERVER_NOT_KNOWN: + case SSH_KNOWN_HOSTS_UNKNOWN: LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s, "The server is unknown, its public key was not found in the known host file %s", s->ssh->server_hostkey_path); + server_identity_is_ok = 0; break; - case SSH_SERVER_KNOWN_CHANGED: + case SSH_KNOWN_HOSTS_CHANGED: LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s, "The server key has changed. Either you are under attack or the administrator changed the key."); server_identity_is_ok = 0; break; - case SSH_SERVER_FILE_NOT_FOUND: + case SSH_KNOWN_HOSTS_NOT_FOUND: LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s, "The known host file %s does not exist", s->ssh->server_hostkey_path); server_identity_is_ok = 0; break; - case SSH_SERVER_ERROR: + case SSH_KNOWN_HOSTS_ERROR: LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s, "Some error happened"); server_identity_is_ok = 0; break; - case SSH_SERVER_FOUND_OTHER: + case SSH_KNOWN_HOSTS_OTHER: LOG_WARN_ABOUT_SSH_SERVER_VALIDATION(s, "The server gave use a key of a type while we had an other type recorded. " \ "It is a possible attack."); server_identity_is_ok = 0; |