diff options
author | Rakesh Raghava <rakeshraghava@google.com> | 2022-12-11 06:28:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-12-11 06:28:55 +0000 |
commit | 5e5a289406dd8fcd45adfccea9c1f5768e8ef03c (patch) | |
tree | 98ab6fa1c2bffa09bec93b8fc18addabf74a85e1 /service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol | |
parent | 967669f55c943d83e4bb77b1265d0d70487269eb (diff) | |
parent | 2c8b42712cf966c84d458cd215de944f6fdb4fa9 (diff) | |
download | ImsMedia-5e5a289406dd8fcd45adfccea9c1f5768e8ef03c.tar.gz |
Merge "Fix RtpStack static analysis - useStlAlgorithm"
Diffstat (limited to 'service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol')
4 files changed, 27 insertions, 50 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpHeader.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpHeader.h index 5725d777..a980ab5b 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpHeader.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpHeader.h @@ -62,7 +62,7 @@ private: /** * It contains CSRC list. */ - std::list<RtpDt_UInt32*> m_uiCsrcList; + std::list<RtpDt_UInt32> m_uiCsrcList; /** * m_ucMarker contains marker bit. @@ -93,7 +93,7 @@ private: /** * add element to m_uiCsrcList */ - eRtp_Bool addElementToCsrcList(IN RtpDt_UInt32 uiCsrc); + RtpDt_Void addElementToCsrcList(IN RtpDt_UInt32 uiCsrc); public: // Constructor @@ -145,7 +145,7 @@ public: /** * get method for m_uiCsrcList */ - std::list<RtpDt_UInt32*>& getCsrcList(); + std::list<RtpDt_UInt32>& getCsrcList(); /** * set method for m_ucMarker diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpSession.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpSession.h index 7d53b5bd..4b4f83f0 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpSession.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpSession.h @@ -226,8 +226,7 @@ class RtpSession /** * It iterates through the pobjCsrcList to find uiSsrc. */ - eRtp_Bool findEntryInCsrcList( - IN std::list<RtpDt_UInt32*>& pobjCsrcList, IN RtpDt_UInt32 uiSsrc); + eRtp_Bool findEntryInCsrcList(IN std::list<RtpDt_UInt32>& pobjCsrcList, IN RtpDt_UInt32 uiSsrc); /** * Checks if the received packet has the same ssrc as ours. diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpHeader.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpHeader.cpp index f0310a90..60759813 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpHeader.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpHeader.cpp @@ -23,7 +23,7 @@ RtpHeader::RtpHeader() : m_ucPadding(RTP_ZERO), m_ucExtension(RTP_ZERO), m_ucCsrcCount(RTP_ZERO), - m_uiCsrcList(std::list<RtpDt_UInt32*>()), + m_uiCsrcList(std::list<RtpDt_UInt32>()), m_ucMarker(RTP_ZERO), m_ucPayloadType(RTP_ZERO), m_usSequenceNumber(RTP_ZERO), @@ -35,10 +35,6 @@ RtpHeader::RtpHeader() : RtpHeader::~RtpHeader() { - for (auto& puiCsrc : m_uiCsrcList) - { - delete puiCsrc; - } m_uiCsrcList.clear(); } @@ -82,25 +78,17 @@ RtpDt_UChar RtpHeader::getCsrcCount() return m_ucCsrcCount; } -std::list<RtpDt_UInt32*>& RtpHeader::getCsrcList() +std::list<RtpDt_UInt32>& RtpHeader::getCsrcList() { return m_uiCsrcList; } -eRtp_Bool RtpHeader::addElementToCsrcList(IN RtpDt_UInt32 uiCsrc) +RtpDt_Void RtpHeader::addElementToCsrcList(IN RtpDt_UInt32 uiCsrc) { - RtpDt_UInt32* puiCsrcElm = new RtpDt_UInt32(); - if (puiCsrcElm == RTP_NULL) - { - RTP_TRACE_ERROR("[Memory Error] new returned NULL.", RTP_ZERO, RTP_ZERO); - return eRTP_FALSE; - } - *puiCsrcElm = uiCsrc; - - // append puiCsrcElm into list. - m_uiCsrcList.push_back(puiCsrcElm); - RTP_TRACE_MESSAGE("CsrcList[%d] = %d", m_uiCsrcList.size(), *puiCsrcElm); - return eRTP_TRUE; + // append uiCsrc into list. + m_uiCsrcList.push_back(uiCsrc); + RTP_TRACE_MESSAGE("CsrcList[%d] = %d", m_uiCsrcList.size(), uiCsrc); + return; } RtpDt_Void RtpHeader::setMarker() @@ -199,14 +187,9 @@ eRtp_Bool RtpHeader::formHeader(IN RtpBuffer* pobjRtpPktBuf) RtpDt_UInt32 uiBufLen = RTP_FIXED_HDR_LEN; // csrc list - for (auto& puiCsrc : m_uiCsrcList) + for (auto csrc : m_uiCsrcList) { - if (puiCsrc == NULL) - { - RTP_TRACE_ERROR("Csrc is not available ", RTP_ZERO, RTP_ZERO); - return eRTP_FALSE; - } - *(RtpDt_UInt32*)pucRtpHeaderBuffer = RtpOsUtil::Ntohl(*puiCsrc); + *(RtpDt_UInt32*)pucRtpHeaderBuffer = RtpOsUtil::Ntohl(csrc); pucRtpHeaderBuffer = pucRtpHeaderBuffer + RTP_WORD_SIZE; } RtpDt_UInt16 usSize = m_uiCsrcList.size(); @@ -282,10 +265,7 @@ eRtp_Bool RtpHeader::decodeHeader(IN RtpBuffer* pobjRtpPktBuf, OUT RtpDt_UInt32& // csrc list for (RtpDt_UInt32 usCsrcIdx = RTP_ZERO; usCsrcIdx < m_ucCsrcCount; usCsrcIdx++) { - if (!addElementToCsrcList(RtpOsUtil::Ntohl(*((RtpDt_UInt32*)pucRtpHeaderBuffer)))) - { - return eRTP_FALSE; - } + addElementToCsrcList(RtpOsUtil::Ntohl(*((RtpDt_UInt32*)pucRtpHeaderBuffer))); pucRtpHeaderBuffer = pucRtpHeaderBuffer + RTP_FOUR; uiBufPos = uiBufPos + RTP_WORD_SIZE; } diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpSession.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpSession.cpp index 955e5f1a..e5d65e2b 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpSession.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpSession.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include <algorithm> #include <RtpSession.h> #include <RtpTrace.h> #include <RtpError.h> @@ -1372,17 +1373,16 @@ RtpReceiverInfo* RtpSession::checkSsrcCollisionOnRcv(IN RtpBuffer* pobjRtpAddr, } // checkSsrcCollisionOnRcv eRtp_Bool RtpSession::findEntryInCsrcList( - IN std::list<RtpDt_UInt32*>& pobjCsrcList, IN RtpDt_UInt32 uiSsrc) + IN std::list<RtpDt_UInt32>& pobjCsrcList, IN RtpDt_UInt32 uiSsrc) { - for (auto& puiTempSsrc : pobjCsrcList) + if (pobjCsrcList.empty()) { - if (*puiTempSsrc == uiSsrc) - { - return eRTP_TRUE; - } + return eRTP_FALSE; } - return eRTP_FALSE; + auto result = std::find(pobjCsrcList.begin(), pobjCsrcList.end(), uiSsrc); + return (result != pobjCsrcList.end()) ? eRTP_TRUE : eRTP_FALSE; + } // findEntryInCsrcList eRtp_Bool RtpSession::findEntryInRcvrList(IN RtpDt_UInt32 uiSsrc) @@ -1403,15 +1403,13 @@ eRTP_STATUS_CODE RtpSession::processCsrcList( { eRtp_Bool bRcvrStatus = eRTP_FALSE; RtpDt_UInt16 usPos = RTP_ZERO; - std::list<RtpDt_UInt32*>& pobjCsrcList = pobjRtpHeader->getCsrcList(); + std::list<RtpDt_UInt32>& pobjCsrcList = pobjRtpHeader->getCsrcList(); - for (std::list<RtpDt_UInt32*>::iterator listIterator = pobjCsrcList.begin(); + for (std::list<RtpDt_UInt32>::iterator listIterator = pobjCsrcList.begin(); (usPos < ucCsrcCount && listIterator != pobjCsrcList.end()); usPos = usPos + RTP_ONE) { - RtpDt_UInt32* puiTempSsrc = RTP_NULL; - - puiTempSsrc = (*listIterator); - bRcvrStatus = findEntryInRcvrList(*puiTempSsrc); + RtpDt_UInt32 csrc = (*listIterator); + bRcvrStatus = findEntryInRcvrList(csrc); if (bRcvrStatus == eRTP_FALSE) { RtpReceiverInfo* pobjRcvInfo = RTP_NULL; @@ -1423,7 +1421,7 @@ eRTP_STATUS_CODE RtpSession::processCsrcList( } // fill pobjRcvInfo // ssrc - pobjRcvInfo->setSsrc(*puiTempSsrc); + pobjRcvInfo->setSsrc(csrc); // m_bSender pobjRcvInfo->setSenderFlag(eRTP_FALSE); @@ -1483,7 +1481,7 @@ eRTP_STATUS_CODE RtpSession::processRcvdRtpPkt(IN RtpBuffer* pobjRtpAddr, IN Rtp if (ucCsrcCount > RTP_ZERO) { - std::list<RtpDt_UInt32*>& pobjCsrcList = pobjRtpHeader->getCsrcList(); + std::list<RtpDt_UInt32>& pobjCsrcList = pobjRtpHeader->getCsrcList(); bCsrcStatus = findEntryInCsrcList(pobjCsrcList, m_uiSsrc); } |