Bug #269 ยป 0001-Buffer-Overflow-check-against-the-implicit-size-of-s.patch
src/connection.c | ||
---|---|---|
mylog(LOG_DEBUG, "Trying to accept new client on %d", cn->handle);
|
||
err = accept(cn->handle, &sa, &sa_len);
|
||
if (err < 0) {
|
||
mylog(LOG_ERROR, "accept failed: %s", strerror(errno));
|
||
return NULL;
|
||
}
|
||
if (err >= FD_SETSIZE) {
|
||
mylog(LOG_WARN, "too many client connected, close %d", err);
|
||
if (close(err) == -1)
|
||
mylog(LOG_WARN, "Error on socket close: %s",
|
||
strerror(errno));
|
||
return NULL;
|
||
}
|
||
socket_set_nonblock(err);
|
||
conn = connection_init(cn->anti_flood, cn->ssl, cn->timeout, 0);
|
src/irc.c | ||
---|---|---|
if (conn == bip->listener) {
|
||
struct link_client *n = irc_accept_new(conn);
|
||
assert(n);
|
||
list_add_last(&bip->conn_list, CONN(n));
|
||
list_add_last(&bip->connecting_client_list, n);
|
||
if (n) {
|
||
list_add_last(&bip->conn_list, CONN(n));
|
||
list_add_last(&bip->connecting_client_list, n);
|
||
}
|
||
return;
|
||
}
|
||