This is an automated email from the ASF dual-hosted git repository.

gmurthy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/master by this push:
     new f07975e  DISPATCH-1970: Zero out the conn->config pointer since it has 
already been freed. This closes #1046.
f07975e is described below

commit f07975ee4bde676438d226d885e0eb78937f99b4
Author: Ganesh Murthy <gmur...@apache.org>
AuthorDate: Thu Feb 18 14:07:52 2021 -0500

    DISPATCH-1970: Zero out the conn->config pointer since it has already been 
freed. This closes #1046.
---
 src/adaptors/http2/http2_adaptor.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/adaptors/http2/http2_adaptor.c 
b/src/adaptors/http2/http2_adaptor.c
index 25347e4..7ffdb0d 100644
--- a/src/adaptors/http2/http2_adaptor.c
+++ b/src/adaptors/http2/http2_adaptor.c
@@ -382,10 +382,6 @@ void free_qdr_http2_connection(qdr_http2_connection_t* 
http_conn, bool on_shutdo
         buff = DEQ_HEAD(http_conn->granted_read_buffs);
     }
 
-    if (http_conn->delete_egress_connections) {
-        http_conn->config = 0;
-    }
-
     qd_log(http2_adaptor->log_source, QD_LOG_TRACE, "[C%"PRIu64"] Freeing 
http2 connection in free_qdr_http2_connection", http_conn->conn_id);
 
     free_qdr_http2_connection_t(http_conn);
@@ -872,13 +868,13 @@ static void _http_record_request(qdr_http2_connection_t 
*conn, qdr_http2_stream_
             remote_addr = conn->remote_address;
         }
     } else {
-        remote_addr = conn->config->host;
+        remote_addr = conn->config?conn->config->host:0;
     }
     qd_http_record_request(http2_adaptor->core,
                            stream_data->method,
                            stream_data->request_status,
-                           conn->config->address,
-                           remote_addr, conn->config->site,
+                           conn->config?conn->config->address:0,
+                           remote_addr, conn->config?conn->config->site:0,
                            stream_data->remote_site,
                            conn->ingress, stream_data->bytes_in, 
stream_data->bytes_out,
                            stream_data->stop && stream_data->start ? 
stream_data->stop - stream_data->start : 0);
@@ -2094,6 +2090,8 @@ static void handle_disconnected(qdr_http2_connection_t* 
conn)
             conn->stream_dispatcher_stream_data = 0;
 
             if (conn->delete_egress_connections) {
+                // The config has already been freed by the 
qd_http_connector_decref() function, set it to zero here
+                conn->config = 0;
                 close_connections(conn);
             }
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to