summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol
diff options
context:
space:
mode:
authorRakesh Raghava <rakeshraghava@google.com>2022-12-11 06:28:55 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-12-11 06:28:55 +0000
commit5e5a289406dd8fcd45adfccea9c1f5768e8ef03c (patch)
tree98ab6fa1c2bffa09bec93b8fc18addabf74a85e1 /service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol
parent967669f55c943d83e4bb77b1265d0d70487269eb (diff)
parent2c8b42712cf966c84d458cd215de944f6fdb4fa9 (diff)
downloadImsMedia-5e5a289406dd8fcd45adfccea9c1f5768e8ef03c.tar.gz
Merge "Fix RtpStack static analysis - useStlAlgorithm"
Diffstat (limited to 'service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol')
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpHeader.h6
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/include/rtp/core/RtpSession.h3
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpHeader.cpp40
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/protocol/rtp/core/RtpSession.cpp28
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);
}