mirror of
https://github.com/nginx/nginx.git
synced 2026-05-13 09:36:42 +00:00
Fix resource leak in ngx_event_acceptex() error paths
When AcceptEx completes but subsequent processing fails (setsockopt failure, memory allocation failure, or address conversion failure), the accepted socket was not closed, leading to resource leak. This commit replaces TODO comments with actual calls to ngx_close_posted_connection() to properly clean up resources. Fixes 3 resource leak paths: - setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failure - ngx_pnalloc() failure for addr_text - ngx_sock_ntop() failure returning 0 length Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0de6e878ba
commit
3a20bbb4f0
1 changed files with 3 additions and 3 deletions
|
|
@ -41,7 +41,7 @@ ngx_event_acceptex(ngx_event_t *rev)
|
|||
ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno,
|
||||
"setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed for %V",
|
||||
&c->addr_text);
|
||||
/* TODO: close socket */
|
||||
ngx_close_posted_connection(c);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ ngx_event_acceptex(ngx_event_t *rev)
|
|||
if (ls->addr_ntop) {
|
||||
c->addr_text.data = ngx_pnalloc(c->pool, ls->addr_text_max_len);
|
||||
if (c->addr_text.data == NULL) {
|
||||
/* TODO: close socket */
|
||||
ngx_close_posted_connection(c);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ ngx_event_acceptex(ngx_event_t *rev)
|
|||
c->addr_text.data,
|
||||
ls->addr_text_max_len, 0);
|
||||
if (c->addr_text.len == 0) {
|
||||
/* TODO: close socket */
|
||||
ngx_close_posted_connection(c);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue