1
0
forked from bip/bip

Fix file descriptor leak on erroring client disconnects

- Client connections in error also need to be closed/freed
- This fixes a file descriptor leak that would result in a bip crash

Signed-off-by: Loïc Gomez <bip@animanova.fr>
This commit is contained in:
Loïc Gomez 2024-01-30 22:30:27 +09:00
parent f797d25e06
commit bcd70b7a2f
Signed by: Kyoshiro
GPG Key ID: F80C2F71E89B990A

View File

@ -62,7 +62,7 @@ void connection_close(connection_t *cn)
{ {
mylog(LOG_DEBUG, "Connection close asked. FD:%d (status: %d)", mylog(LOG_DEBUG, "Connection close asked. FD:%d (status: %d)",
(long)cn->handle, cn->connected); (long)cn->handle, cn->connected);
if (cn->connected != CONN_DISCONN && cn->connected != CONN_ERROR) { if (cn->connected != CONN_DISCONN) {
cn->connected = CONN_DISCONN; cn->connected = CONN_DISCONN;
if (close(cn->handle) == -1) if (close(cn->handle) == -1)
mylog(LOG_WARN, "Error on socket close: %s", mylog(LOG_WARN, "Error on socket close: %s",