From 7093f2a756f195ab3ebafd6b356078ec3326ad58 Mon Sep 17 00:00:00 2001 From: liuxueli Date: Tue, 25 Jul 2023 18:35:42 +0800 Subject: application metrics更新包数时存在内存越界 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/tsg_statistic.h | 22 +++++++++++----------- src/tsg_bridge.cpp | 16 ++++++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/inc/tsg_statistic.h b/inc/tsg_statistic.h index d8a86b6..976f7ce 100644 --- a/inc/tsg_statistic.h +++ b/inc/tsg_statistic.h @@ -22,17 +22,17 @@ struct traffic_info struct traffic_packet_info { - uint32_t sessions; - uint32_t in_pkts; - uint32_t out_pkts; - uint32_t c2s_pkts; - uint32_t s2c_pkts; - uint32_t c2s_fragments; - uint32_t s2c_fragments; - uint32_t c2s_tcp_ooorder_pkts; - uint32_t s2c_tcp_ooorder_pkts; - uint32_t c2s_tcp_retransmitted_pkts; - uint32_t s2c_tcp_retransmitted_pkts; + uint64_t sessions; + uint64_t in_pkts; + uint64_t out_pkts; + uint64_t c2s_pkts; + uint64_t s2c_pkts; + uint64_t c2s_fragments; + uint64_t s2c_fragments; + uint64_t c2s_tcp_ooorder_pkts; + uint64_t s2c_tcp_ooorder_pkts; + uint64_t c2s_tcp_retransmitted_pkts; + uint64_t s2c_tcp_retransmitted_pkts; uint64_t in_bytes; uint64_t out_bytes; uint64_t c2s_bytes; diff --git a/src/tsg_bridge.cpp b/src/tsg_bridge.cpp index 700793b..42610f2 100644 --- a/src/tsg_bridge.cpp +++ b/src/tsg_bridge.cpp @@ -538,22 +538,22 @@ int session_runtime_process_context_async(const struct streaminfo *a_stream, voi const struct session_runtime_process_context *session_runtime_process_context_new(const struct streaminfo *a_stream) { - struct session_runtime_process_context *srt_attribute=(struct session_runtime_process_context *)session_async_bridge_get_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id); - if(srt_attribute==NULL) + struct session_runtime_process_context *srt_process_context=(struct session_runtime_process_context *)session_async_bridge_get_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id); + if(srt_process_context==NULL) { - srt_attribute=(struct session_runtime_process_context *)dictator_malloc(a_stream->threadnum, sizeof(struct session_runtime_process_context)); - memset(srt_attribute, 0, sizeof(struct session_runtime_process_context)); + srt_process_context=(struct session_runtime_process_context *)dictator_malloc(a_stream->threadnum, sizeof(struct session_runtime_process_context)); + memset(srt_process_context, 0, sizeof(struct session_runtime_process_context)); - int ret=session_async_bridge_set_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id, (void *)srt_attribute); + int ret=session_async_bridge_set_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id, (void *)srt_process_context); if(ret<0) { - session_runtime_process_context_free_cb(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id, (void *)srt_attribute); - srt_attribute=NULL; + session_runtime_process_context_free_cb(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_SESSION_PROCESS_CONTEXT].id, (void *)srt_process_context); + srt_process_context=NULL; return NULL; } } - return (const struct session_runtime_process_context *)srt_attribute; + return (const struct session_runtime_process_context *)srt_process_context; } const struct session_runtime_process_context *session_runtime_process_context_get(const struct streaminfo *a_stream) -- cgit v1.2.3