6868#define MIN_LLEN 4
6969#define ESS_ELEMENT_LLEN 4
7070
71+ #define LIMIT_UINT32 (val ) ((val) > UINT32_MAX ? UINT32_MAX : (uint32_t)(val))
7172
7273
7374typedef struct
@@ -1427,13 +1428,14 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
14271428 int i ;
14281429 int64_t filePos ;
14291430 long j ;
1431+ uint32_t k ;
14301432 MXFListIterator iter ;
14311433 const PSEFailure * pseFailure ;
14321434 const VTRError * vtrError ;
14331435 const DigiBetaDropout * digiBetaDropout ;
14341436 const TimecodeBreak * timecodeBreak ;
14351437 uint32_t nextTrackID ;
1436- int numTracks ;
1438+ uint32_t numTracks ;
14371439 TimecodeIndexSearcher vitcIndexSearcher ;
14381440 TimecodeIndexSearcher ltcIndexSearcher ;
14391441 int64_t errorPosition ;
@@ -1454,10 +1456,10 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
14541456
14551457 /* update the PSE failure and VTR error counts */
14561458
1457- CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_VTRErrorCount ), numVTRErrors ));
1458- CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_PSEFailureCount ), numPSEFailures ));
1459- CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_DigiBetaDropoutCount ), numDigiBetaDropouts ));
1460- CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_TimecodeBreakCount ), numTimecodeBreaks ));
1459+ CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_VTRErrorCount ), LIMIT_UINT32 ( numVTRErrors ) ));
1460+ CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_PSEFailureCount ), LIMIT_UINT32 ( numPSEFailures ) ));
1461+ CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_DigiBetaDropoutCount ), LIMIT_UINT32 ( numDigiBetaDropouts ) ));
1462+ CHK_ORET (mxf_set_uint32_item (output -> prefaceSet , & MXF_ITEM_K (Preface , APP_TimecodeBreakCount ), LIMIT_UINT32 ( numTimecodeBreaks ) ));
14611463
14621464
14631465 /* update the header metadata durations and audio sequence offset */
@@ -1545,8 +1547,8 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
15451547 {
15461548 /* if num PSE failures exceeds MAX_STRONG_REF_ARRAY_COUNT then the failures are
15471549 written in > 1 tracks */
1548- numTracks = ( numPSEFailures + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ;
1549- for (i = 0 ; i < numTracks ; i ++ )
1550+ numTracks = LIMIT_UINT32 (( numPSEFailures + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ) ;
1551+ for (k = 0 ; k < numTracks ; k ++ )
15501552 {
15511553 /* Preface - ContentStorage - SourcePackage - DM Event Track */
15521554 CHK_ORET (mxf_create_set (output -> headerMetadata , & MXF_SET_K (EventTrack ), & output -> sourcePackageTrackSet ));
@@ -1628,8 +1630,8 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
16281630 {
16291631 /* if numVTRErrorsLocated exceeds MAX_STRONG_REF_ARRAY_COUNT then the errors are
16301632 written in > 1 tracks */
1631- numTracks = ( numVTRErrorsLocated + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ;
1632- for (j = 0 ; j < numTracks ; j ++ )
1633+ numTracks = LIMIT_UINT32 (( numVTRErrorsLocated + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ) ;
1634+ for (k = 0 ; k < numTracks ; k ++ )
16331635 {
16341636 /* Preface - ContentStorage - SourcePackage - DM Event Track */
16351637 CHK_ORET (mxf_create_set (output -> headerMetadata , & MXF_SET_K (EventTrack ), & output -> sourcePackageTrackSet ));
@@ -1656,8 +1658,8 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
16561658 {
16571659 /* if num dropouts exceeds MAX_STRONG_REF_ARRAY_COUNT then the failures are
16581660 written in > 1 tracks */
1659- numTracks = ( numDigiBetaDropouts + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ;
1660- for (i = 0 ; i < numTracks ; i ++ )
1661+ numTracks = LIMIT_UINT32 (( numDigiBetaDropouts + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ) ;
1662+ for (k = 0 ; k < numTracks ; k ++ )
16611663 {
16621664 /* Preface - ContentStorage - SourcePackage - DM Event Track */
16631665 CHK_ORET (mxf_create_set (output -> headerMetadata , & MXF_SET_K (EventTrack ), & output -> sourcePackageTrackSet ));
@@ -1681,8 +1683,8 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
16811683 {
16821684 /* if num breaks exceeds MAX_STRONG_REF_ARRAY_COUNT then the failures are
16831685 written in > 1 tracks */
1684- numTracks = ( numTimecodeBreaks + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ;
1685- for (i = 0 ; i < numTracks ; i ++ )
1686+ numTracks = LIMIT_UINT32 (( numTimecodeBreaks + MAX_STRONG_REF_ARRAY_COUNT - 1 ) / MAX_STRONG_REF_ARRAY_COUNT ) ;
1687+ for (k = 0 ; k < numTracks ; k ++ )
16861688 {
16871689 /* Preface - ContentStorage - SourcePackage - DM Event Track */
16881690 CHK_ORET (mxf_create_set (output -> headerMetadata , & MXF_SET_K (EventTrack ), & output -> sourcePackageTrackSet ));
@@ -1733,7 +1735,7 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
17331735 CHK_ORET (mxf_set_strongref_item (output -> sourcePackageTrackSet , & MXF_ITEM_K (GenericTrack , Sequence ), output -> sequenceSet ));
17341736 CHK_ORET (mxf_set_ul_item (output -> sequenceSet , & MXF_ITEM_K (StructuralComponent , DataDefinition ), & MXF_DDEF_L (DescriptiveMetadata )));
17351737
1736- for (j = 0 ; j < MAX_STRONG_REF_ARRAY_COUNT && timecodeBreakIndex < numTimecodeBreaks ; j ++ , timecodeBreakIndex ++ )
1738+ for (k = 0 ; k < MAX_STRONG_REF_ARRAY_COUNT && timecodeBreakIndex < numTimecodeBreaks ; k ++ , timecodeBreakIndex ++ )
17371739 {
17381740 timecodeBreak = (const TimecodeBreak * )& timecodeBreaks [timecodeBreakIndex ];
17391741
@@ -1790,7 +1792,7 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
17901792 CHK_ORET (mxf_set_strongref_item (output -> sourcePackageTrackSet , & MXF_ITEM_K (GenericTrack , Sequence ), output -> sequenceSet ));
17911793 CHK_ORET (mxf_set_ul_item (output -> sequenceSet , & MXF_ITEM_K (StructuralComponent , DataDefinition ), & MXF_DDEF_L (DescriptiveMetadata )));
17921794
1793- for (j = 0 ; j < MAX_STRONG_REF_ARRAY_COUNT && digiBetaDropoutIndex < numDigiBetaDropouts ; j ++ , digiBetaDropoutIndex ++ )
1795+ for (k = 0 ; k < MAX_STRONG_REF_ARRAY_COUNT && digiBetaDropoutIndex < numDigiBetaDropouts ; k ++ , digiBetaDropoutIndex ++ )
17941796 {
17951797 digiBetaDropout = (const DigiBetaDropout * )& digiBetaDropouts [digiBetaDropoutIndex ];
17961798
@@ -1846,7 +1848,7 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
18461848 CHK_ORET (mxf_set_strongref_item (output -> sourcePackageTrackSet , & MXF_ITEM_K (GenericTrack , Sequence ), output -> sequenceSet ));
18471849 CHK_ORET (mxf_set_ul_item (output -> sequenceSet , & MXF_ITEM_K (StructuralComponent , DataDefinition ), & MXF_DDEF_L (DescriptiveMetadata )));
18481850
1849- for (j = 0 ; j < MAX_STRONG_REF_ARRAY_COUNT && failureIndex < numPSEFailures ; j ++ , failureIndex ++ )
1851+ for (k = 0 ; k < MAX_STRONG_REF_ARRAY_COUNT && failureIndex < numPSEFailures ; k ++ , failureIndex ++ )
18501852 {
18511853 pseFailure = (const PSEFailure * )& pseFailures [failureIndex ];
18521854
@@ -1910,7 +1912,7 @@ int complete_archive_mxf_file(ArchiveMXFWriter **outputRef, const InfaxData *sou
19101912 CHK_ORET (mxf_set_strongref_item (output -> sourcePackageTrackSet , & MXF_ITEM_K (GenericTrack , Sequence ), output -> sequenceSet ));
19111913 CHK_ORET (mxf_set_ul_item (output -> sequenceSet , & MXF_ITEM_K (StructuralComponent , DataDefinition ), & MXF_DDEF_L (DescriptiveMetadata )));
19121914
1913- for (j = 0 ; j < MAX_STRONG_REF_ARRAY_COUNT && errorIndex < numVTRErrors ; j ++ , errorIndex ++ )
1915+ for (k = 0 ; k < MAX_STRONG_REF_ARRAY_COUNT && errorIndex < numVTRErrors ; k ++ , errorIndex ++ )
19141916 {
19151917 vtrError = (const VTRError * )& vtrErrors [errorIndex ];
19161918
0 commit comments