diff --git a/src/rrdEventProcess.c b/src/rrdEventProcess.c index 395274f8..a35538a2 100644 --- a/src/rrdEventProcess.c +++ b/src/rrdEventProcess.c @@ -110,7 +110,7 @@ void processIssueTypeEvent(data_buf *rbuf) } RDK_LOG(RDK_LOG_DEBUG, LOG_REMDEBUG, "[%s:%d]: ...Exiting...\n", __FUNCTION__, __LINE__); - return; + return; // CID 336987: Resource leak (RESOURCE_LEAK) } /* @@ -296,13 +296,22 @@ static void processIssueTypeInStaticProfile(data_buf *rbuf, issueNodeData *pIssu if (isStaticIssue) { // Issue in Static Profile JSON - RDK_LOG(RDK_LOG_INFO, LOG_REMDEBUG, "[%s:%d]: Issue Data Node: %s and Sub-Node: %s found in Static JSON File %s... \n", __FUNCTION__, __LINE__, pIssueNode->Node, pIssueNode->subNode, RRD_JSON_FILE); - checkIssueNodeInfo(pIssueNode, jsonParsed, rbuf, false, NULL); // sanity Check and Get Command List + if ( pIssueNode->Node && pIssueNode->subNode ) // CID 336981: Use after free (USE_AFTER_FREE), CID 336980:Use after free (USE_AFTER_FREE) + { + RDK_LOG(RDK_LOG_INFO, LOG_REMDEBUG, "[%s:%d]: Issue Data Node: %s and Sub-Node: %s found in Static JSON File %s... \n", __FUNCTION__, __LINE__, pIssueNode->Node, pIssueNode->subNode, RRD_JSON_FILE); + if( rbuf ) // CID 336984: Double free (USE_AFTER_FREE) + { + checkIssueNodeInfo(pIssueNode, jsonParsed, rbuf, false, NULL); // sanity Check and Get Command List + } + } } else { RDK_LOG(RDK_LOG_DEBUG, LOG_REMDEBUG, "[%s:%d] Issue Data Not found in Static JSON File... \n", __FUNCTION__, __LINE__); - processIssueTypeInInstalledPackage(rbuf, pIssueNode); + if ( pIssueNode->Node && pIssueNode->subNode ) // CID 336980: Double free (USE_AFTER_FREE), CID 336980:Use after free (USE_AFTER_FREE) + { + processIssueTypeInInstalledPackage(rbuf, pIssueNode); + } } freeParsedJson(jsonParsed);