Mercurial > hg > nginx
view src/event/quic/ngx_event_quic_ssl.h @ 9210:4ed4e1e7f115
QUIC: fixed stream cleanup (ticket #2586).
Stream connection cleanup handler ngx_quic_stream_cleanup_handler() calls
ngx_quic_shutdown_stream() after which it resets the pointer from quic stream
to the connection (sc->connection = NULL). Previously if this call failed,
sc->connection retained the old value, while the connection was freed by the
application code. This resulted later in a second attempt to close the freed
connection, which lead to allocator double free error.
The fix is to reset the sc->connection pointer in case of error.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 14 Feb 2024 15:55:37 +0400 |
parents | b3f6ad181df4 |
children |
line wrap: on
line source
/* * Copyright (C) Nginx, Inc. */ #ifndef _NGX_EVENT_QUIC_SSL_H_INCLUDED_ #define _NGX_EVENT_QUIC_SSL_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> ngx_int_t ngx_quic_init_connection(ngx_connection_t *c); ngx_int_t ngx_quic_handle_crypto_frame(ngx_connection_t *c, ngx_quic_header_t *pkt, ngx_quic_frame_t *frame); #endif /* _NGX_EVENT_QUIC_SSL_H_INCLUDED_ */