mirror of
https://gitee.com/openharmony/communication_dsoftbus
synced 2025-02-17 01:30:02 +00:00
!6674 The session key in the UDP channel of the transport module is not released after being used
Merge pull request !6674 from Zhangzi/master
This commit is contained in:
commit
2bd54a2ba9
@ -69,6 +69,8 @@ static void NotifyTimeOutUdpChannel(ListNode *udpChannelList)
|
||||
if (udpChannel->info.fastTransData != NULL) {
|
||||
SoftBusFree((void *)udpChannel->info.fastTransData);
|
||||
}
|
||||
(void)memset_s(udpChannel->info.sessionKey, sizeof(udpChannel->info.sessionKey), 0,
|
||||
sizeof(udpChannel->info.sessionKey));
|
||||
SoftBusFree(udpChannel);
|
||||
}
|
||||
}
|
||||
@ -142,6 +144,8 @@ void TransUdpChannelMgrDeinit(void)
|
||||
if (udpChannel->info.fastTransData != NULL) {
|
||||
SoftBusFree((void *)udpChannel->info.fastTransData);
|
||||
}
|
||||
(void)memset_s(udpChannel->info.sessionKey, sizeof(udpChannel->info.sessionKey), 0,
|
||||
sizeof(udpChannel->info.sessionKey));
|
||||
SoftBusFree(udpChannel);
|
||||
}
|
||||
(void)SoftBusMutexUnlock(&g_udpChannelMgr->lock);
|
||||
@ -208,6 +212,8 @@ int32_t TransDelUdpChannel(int32_t channelId)
|
||||
if (udpChannelNode->info.fastTransData != NULL) {
|
||||
SoftBusFree((void *)(udpChannelNode->info.fastTransData));
|
||||
}
|
||||
(void)memset_s(udpChannelNode->info.sessionKey, sizeof(udpChannelNode->info.sessionKey), 0,
|
||||
sizeof(udpChannelNode->info.sessionKey));
|
||||
SoftBusFree(udpChannelNode);
|
||||
g_udpChannelMgr->cnt--;
|
||||
(void)SoftBusMutexUnlock(&(g_udpChannelMgr->lock));
|
||||
@ -231,6 +237,8 @@ static void NotifyUdpChannelCloseInList(ListNode *udpChannelList)
|
||||
if (udpChannel->info.fastTransData != NULL) {
|
||||
SoftBusFree((void *)(udpChannel->info.fastTransData));
|
||||
}
|
||||
(void)memset_s(udpChannel->info.sessionKey, sizeof(udpChannel->info.sessionKey), 0,
|
||||
sizeof(udpChannel->info.sessionKey));
|
||||
SoftBusFree(udpChannel);
|
||||
}
|
||||
}
|
||||
|
@ -602,6 +602,7 @@ static void TransOnExchangeUdpInfoReply(int64_t authId, int64_t seq, const cJSON
|
||||
}
|
||||
TransUpdateUdpChannelInfo(seq, &(channel.info));
|
||||
ret = ProcessUdpChannelState(&(channel.info), false);
|
||||
(void)memset_s(channel.info.sessionKey, sizeof(channel.info.sessionKey), 0, sizeof(channel.info.sessionKey));
|
||||
if (ret != SOFTBUS_OK) {
|
||||
TRANS_LOGE(TRANS_CTRL,
|
||||
"process udp channelId=%{public}" PRId64 " failed, close peer", channel.info.myData.channelId);
|
||||
@ -796,6 +797,8 @@ static void UdpOnAuthConnOpened(uint32_t requestId, AuthHandle authHandle)
|
||||
}
|
||||
extra.channelId = (int32_t)channel->info.myData.channelId;
|
||||
ret = StartExchangeUdpInfo(channel, authHandle, channel->seq);
|
||||
(void)memset_s(channel->info.sessionKey, sizeof(channel->info.sessionKey), 0,
|
||||
sizeof(channel->info.sessionKey));
|
||||
if (ret != SOFTBUS_OK) {
|
||||
channel->errCode = ret;
|
||||
TRANS_LOGE(TRANS_CTRL, "neg fail");
|
||||
@ -828,7 +831,10 @@ static void UdpOnAuthConnOpenFailed(uint32_t requestId, int32_t reason)
|
||||
TRANS_LOGE(TRANS_CTRL, "malloc fail");
|
||||
return;
|
||||
}
|
||||
if (TransGetUdpChannelByRequestId(requestId, channel) != SOFTBUS_OK) {
|
||||
int32_t ret = TransGetUdpChannelByRequestId(requestId, channel);
|
||||
(void)memset_s(channel->info.sessionKey, sizeof(channel->info.sessionKey), 0,
|
||||
sizeof(channel->info.sessionKey));
|
||||
if (ret != SOFTBUS_OK) {
|
||||
TRANS_LOGE(TRANS_CTRL, "UdpOnAuthConnOpened get channel fail");
|
||||
SoftBusFree(channel);
|
||||
return;
|
||||
@ -863,6 +869,8 @@ static void TransCloseUdpChannelByRequestId(uint32_t requestId)
|
||||
SoftBusFree(channel);
|
||||
return;
|
||||
}
|
||||
(void)memset_s(channel->info.sessionKey, sizeof(channel->info.sessionKey), 0,
|
||||
sizeof(channel->info.sessionKey));
|
||||
ProcessAbnormalUdpChannelState(&channel->info, SOFTBUS_TRANS_OPEN_AUTH_CONN_FAILED, true);
|
||||
SoftBusFree(channel);
|
||||
TRANS_LOGD(TRANS_CTRL, "ok");
|
||||
@ -875,6 +883,7 @@ static int32_t CheckAuthConnStatus(const uint32_t requestId)
|
||||
TRANS_LOGE(TRANS_CTRL, "get channel fail");
|
||||
return SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED;
|
||||
}
|
||||
(void)memset_s(channel.info.sessionKey, sizeof(channel.info.sessionKey), 0, sizeof(channel.info.sessionKey));
|
||||
return channel.errCode;
|
||||
}
|
||||
|
||||
@ -1058,6 +1067,7 @@ int32_t TransCloseUdpChannel(int32_t channelId)
|
||||
TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, TRANS_CTRL, "set udp channel close type failed.");
|
||||
|
||||
ret = TransGetUdpChannelById(channelId, &channel);
|
||||
(void)memset_s(channel.info.sessionKey, sizeof(channel.info.sessionKey), 0, sizeof(channel.info.sessionKey));
|
||||
if (ret != SOFTBUS_OK) {
|
||||
TRANS_LOGE(TRANS_CTRL, "get udp channel by channel id failed. channelId=%{public}d", channelId);
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user