@@ -3429,6 +3429,19 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
3429
3429
retValPerTrack = (int32*) OSCL_MALLOC (iNodeTrackPortList.size () * sizeof (int32));
3430
3430
retNumSamplesPerTrack = (uint32*) OSCL_MALLOC (iNodeTrackPortList.size () * sizeof (uint32));
3431
3431
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
+
3432
3445
for (i = 0 ; i < iNodeTrackPortList.size (); i++)
3433
3446
{
3434
3447
// Peek the next sample to get the duration of the last sample
@@ -3489,10 +3502,12 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
3489
3502
aEventCode = PVMFFFErrMisc;
3490
3503
}
3491
3504
OSCL_ARRAY_DELETE (trackList);
3492
- OSCL_DELETE (trackTSAfterRepo);
3493
- OSCL_DELETE (retValPerTrack);
3494
- OSCL_DELETE (retNumSamplesPerTrack);
3505
+ OSCL_FREE (trackTSAfterRepo);
3495
3506
trackTSAfterRepo = NULL ;
3507
+ OSCL_FREE (retValPerTrack);
3508
+ retValPerTrack = NULL ;
3509
+ OSCL_FREE (retNumSamplesPerTrack);
3510
+ retNumSamplesPerTrack = NULL ;
3496
3511
return PVMFErrResource;
3497
3512
}
3498
3513
}
@@ -3613,10 +3628,12 @@ PVMFStatus PVMFMP4FFParserNode::DoSetDataSourcePosition(PVMFMP4FFParserNodeComma
3613
3628
3614
3629
PVLOGGER_LOGMSG (PVLOGMSG_INST_LLDBG, iLogger, PVLOGMSG_STACK_TRACE, (0 , " PVMFMP4FFParserNode::DoSetDataSourcePosition() Out" ));
3615
3630
OSCL_ARRAY_DELETE (trackList);
3616
- OSCL_DELETE (trackTSAfterRepo);
3631
+ OSCL_FREE (trackTSAfterRepo);
3617
3632
trackTSAfterRepo = NULL ;
3618
- OSCL_DELETE (retValPerTrack);
3619
- OSCL_DELETE (retNumSamplesPerTrack);
3633
+ OSCL_FREE (retValPerTrack);
3634
+ retValPerTrack = NULL ;
3635
+ OSCL_FREE (retNumSamplesPerTrack);
3636
+ retNumSamplesPerTrack = NULL ;
3620
3637
return PVMFSuccess;
3621
3638
}
3622
3639
0 commit comments