From: ChaJiWon Date: Fri, 3 Feb 2017 06:04:45 +0000 (+0900) Subject: Fix defect found by static analyzer X-Git-Tag: 1.3.0~679 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6bfc6ae63cf97aa415bb57511de769cad5416cd3;p=platform%2Fupstream%2Fiotivity.git Fix defect found by static analyzer - ocpayloadparse : double free - occollection : need to NULL check - ocRepresentation : big size of m_devAddr parameter Change-Id: I5bd4cbc6d5dab1dfe7293a234e90d2c465a0039c Signed-off-by: ChaJiWon Reviewed-on: https://gerrit.iotivity.org/gerrit/17007 Tested-by: jenkins-iotivity Reviewed-by: Dan Mihai --- diff --git a/resource/csdk/stack/src/occollection.c b/resource/csdk/stack/src/occollection.c index 6ec6e16..d4198fb 100755 --- a/resource/csdk/stack/src/occollection.c +++ b/resource/csdk/stack/src/occollection.c @@ -264,6 +264,9 @@ OCStackResult DefaultCollectionEntityHandler(OCEntityHandlerFlag flag, OCEntityH { ifQueryParam = OICStrdup(OC_RSRVD_INTERFACE_LL); } + + VERIFY_PARAM_NON_NULL(TAG, ifQueryParam, "Invalid Parameter ifQueryParam"); + if (0 == strcmp(ifQueryParam, OC_RSRVD_INTERFACE_LL) || 0 == strcmp (ifQueryParam, OC_RSRVD_INTERFACE_DEFAULT)) { if (ehRequest->method == OC_REST_PUT || ehRequest->method == OC_REST_POST) diff --git a/resource/csdk/stack/src/ocpayloadparse.c b/resource/csdk/stack/src/ocpayloadparse.c index 2327e46..62a187d 100755 --- a/resource/csdk/stack/src/ocpayloadparse.c +++ b/resource/csdk/stack/src/ocpayloadparse.c @@ -836,6 +836,7 @@ static CborError OCParseSingleRepPayload(OCRepPayload **outPayload, CborValue *o { err = cbor_value_advance(&repMap); free(name); // Free *TinyCBOR allocated* string. + name = NULL; continue; } } diff --git a/resource/include/OCRepresentation.h b/resource/include/OCRepresentation.h index 309b3e5..541cea5 100644 --- a/resource/include/OCRepresentation.h +++ b/resource/include/OCRepresentation.h @@ -119,7 +119,7 @@ namespace OC virtual ~OCRepresentation(){} - void setDevAddr(const OCDevAddr addr); + void setDevAddr(const OCDevAddr&); const std::string getHost() const; diff --git a/resource/src/OCRepresentation.cpp b/resource/src/OCRepresentation.cpp index 2997995..edbb756 100644 --- a/resource/src/OCRepresentation.cpp +++ b/resource/src/OCRepresentation.cpp @@ -631,7 +631,7 @@ namespace OC m_children = children; } - void OCRepresentation::setDevAddr(const OCDevAddr m_devAddr) + void OCRepresentation::setDevAddr(const OCDevAddr& m_devAddr) { std::ostringstream ss; if (m_devAddr.flags & OC_SECURE)