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:
parent
e5149d6169
commit
c1cddb36c0
1 changed files with 2 additions and 0 deletions
|
@ -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]));
|
ctl = start_ssld_accept(client_p->localClient->F, F[1], rb_get_fd(F[0]));
|
||||||
if (ctl != NULL)
|
if (ctl != NULL)
|
||||||
{
|
{
|
||||||
|
del_from_cli_fd_hash(client_p);
|
||||||
client_p->localClient->F = F[0];
|
client_p->localClient->F = F[0];
|
||||||
|
add_to_cli_fd_hash(client_p);
|
||||||
client_p->localClient->ssl_ctl = ctl;
|
client_p->localClient->ssl_ctl = ctl;
|
||||||
SetSSL(client_p);
|
SetSSL(client_p);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue