starttls: Don't corrupt the FD hash.

Altering localClient->F without updating the FD hash leaves the struct
Client in the FD hash indefinitely which causes a crash later if the
struct is reused for a remote client. It also prevents error messages
from ssld showing up on IRC properly.
This commit is contained in:
Jilles Tjoelker 2012-11-03 00:49:10 +01:00
parent e5149d6169
commit c1cddb36c0

View file

@ -69,7 +69,9 @@ mr_starttls(struct Client *client_p, struct Client *source_p, int parc, const ch
ctl = start_ssld_accept(client_p->localClient->F, F[1], rb_get_fd(F[0]));
if (ctl != NULL)
{
del_from_cli_fd_hash(client_p);
client_p->localClient->F = F[0];
add_to_cli_fd_hash(client_p);
client_p->localClient->ssl_ctl = ctl;
SetSSL(client_p);
}