mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
fix segv triggered by recent ap_lingering_close change
need to set SSLFilterRec.pssl = NULL when ssl_hook_CloseConnection is called otherwise, ap_lingering_close -> ap_flush_conn will call ssl_io_filter_Output which thinks it can still use the SSLFilterRec.pssl PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91886 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -67,6 +67,9 @@
|
|||||||
* Close the SSL part of the socket connection
|
* Close the SSL part of the socket connection
|
||||||
* (called immediately _before_ the socket is closed)
|
* (called immediately _before_ the socket is closed)
|
||||||
*/
|
*/
|
||||||
|
/* XXX: perhaps ssl_abort() should call us or vice-versa
|
||||||
|
* lot of the same happening in both places
|
||||||
|
*/
|
||||||
apr_status_t ssl_hook_CloseConnection(SSLFilterRec *filter)
|
apr_status_t ssl_hook_CloseConnection(SSLFilterRec *filter)
|
||||||
{
|
{
|
||||||
SSL *ssl;
|
SSL *ssl;
|
||||||
@@ -144,6 +147,7 @@ apr_status_t ssl_hook_CloseConnection(SSLFilterRec *filter)
|
|||||||
/* deallocate the SSL connection */
|
/* deallocate the SSL connection */
|
||||||
SSL_free(ssl);
|
SSL_free(ssl);
|
||||||
apr_table_setn(conn->notes, "ssl", NULL);
|
apr_table_setn(conn->notes, "ssl", NULL);
|
||||||
|
filter->pssl = NULL; /* so filters know we've been shutdown */
|
||||||
|
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user