Skip to content

Commit 0a14ae9

Browse files
author
Sahil Sachdeva
committed
1850776 Fix Valgrind issue in Mp4ParserNode - Mismatched free() / delete / delete []
1 parent 29e9637 commit 0a14ae9

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node.cpp

+23-6
Original file line numberDiff line numberDiff line change
@@ -3429,6 +3429,19 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
34293429
retValPerTrack = (int32*) OSCL_MALLOC(iNodeTrackPortList.size() * sizeof(int32));
34303430
retNumSamplesPerTrack = (uint32*) OSCL_MALLOC(iNodeTrackPortList.size() * sizeof(uint32));
34313431

3432+
if ((trackTSAfterRepo == NULL) || (retValPerTrack == NULL) || (retNumSamplesPerTrack == NULL))
3433+
{
3434+
PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_ERR,
3435+
(0, "PVMFMP4FFParserNode::DoSetDataSourcePosition() Memory alloc for array to keep the timestamp of the samples failed"));
3436+
OSCL_FREE(trackTSAfterRepo);
3437+
trackTSAfterRepo = NULL;
3438+
OSCL_FREE(retValPerTrack);
3439+
retValPerTrack = NULL;
3440+
OSCL_FREE(retNumSamplesPerTrack);
3441+
retNumSamplesPerTrack = NULL;
3442+
return PVMFErrNoMemory;
3443+
}
3444+
34323445
for (i = 0; i < iNodeTrackPortList.size(); i++)
34333446
{
34343447
// Peek the next sample to get the duration of the last sample
@@ -3489,10 +3502,12 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
34893502
aEventCode = PVMFFFErrMisc;
34903503
}
34913504
OSCL_ARRAY_DELETE(trackList);
3492-
OSCL_DELETE(trackTSAfterRepo);
3493-
OSCL_DELETE(retValPerTrack);
3494-
OSCL_DELETE(retNumSamplesPerTrack);
3505+
OSCL_FREE(trackTSAfterRepo);
34953506
trackTSAfterRepo = NULL;
3507+
OSCL_FREE(retValPerTrack);
3508+
retValPerTrack = NULL;
3509+
OSCL_FREE(retNumSamplesPerTrack);
3510+
retNumSamplesPerTrack = NULL;
34963511
return PVMFErrResource;
34973512
}
34983513
}
@@ -3613,10 +3628,12 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
36133628

36143629
PVLOGGER_LOGMSG(PVLOGMSG_INST_LLDBG, iLogger, PVLOGMSG_STACK_TRACE, (0, "PVMFMP4FFParserNode::DoSetDataSourcePosition() Out"));
36153630
OSCL_ARRAY_DELETE(trackList);
3616-
OSCL_DELETE(trackTSAfterRepo);
3631+
OSCL_FREE(trackTSAfterRepo);
36173632
trackTSAfterRepo = NULL;
3618-
OSCL_DELETE(retValPerTrack);
3619-
OSCL_DELETE(retNumSamplesPerTrack);
3633+
OSCL_FREE(retValPerTrack);
3634+
retValPerTrack = NULL;
3635+
OSCL_FREE(retNumSamplesPerTrack);
3636+
retNumSamplesPerTrack = NULL;
36203637
return PVMFSuccess;
36213638
}
36223639

0 commit comments

Comments
 (0)