--- src/aig/saig/saigIoa.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/aig/saig/saigIoa.c 2022-01-17 08:22:16.506371575 -0700 @@ -47,15 +47,15 @@ char * Saig_ObjName( Aig_Man_t * p, Aig_ { static char Buffer[16]; if ( Aig_ObjIsNode(pObj) || Aig_ObjIsConst1(pObj) ) - sprintf( Buffer, "n%0*d", Abc_Base10Log(Aig_ManObjNumMax(p)), Aig_ObjId(pObj) ); + snprintf( Buffer, 16, "n%0*d", Abc_Base10Log(Aig_ManObjNumMax(p)), Aig_ObjId(pObj) ); else if ( Saig_ObjIsPi(p, pObj) ) - sprintf( Buffer, "pi%0*d", Abc_Base10Log(Saig_ManPiNum(p)), Aig_ObjCioId(pObj) ); + snprintf( Buffer, 16, "pi%0*d", Abc_Base10Log(Saig_ManPiNum(p)), Aig_ObjCioId(pObj) ); else if ( Saig_ObjIsPo(p, pObj) ) - sprintf( Buffer, "po%0*d", Abc_Base10Log(Saig_ManPoNum(p)), Aig_ObjCioId(pObj) ); + snprintf( Buffer, 16, "po%0*d", Abc_Base10Log(Saig_ManPoNum(p)), Aig_ObjCioId(pObj) ); else if ( Saig_ObjIsLo(p, pObj) ) - sprintf( Buffer, "lo%0*d", Abc_Base10Log(Saig_ManRegNum(p)), Aig_ObjCioId(pObj) - Saig_ManPiNum(p) ); + snprintf( Buffer, 16, "lo%0*d", Abc_Base10Log(Saig_ManRegNum(p)), Aig_ObjCioId(pObj) - Saig_ManPiNum(p) ); else if ( Saig_ObjIsLi(p, pObj) ) - sprintf( Buffer, "li%0*d", Abc_Base10Log(Saig_ManRegNum(p)), Aig_ObjCioId(pObj) - Saig_ManPoNum(p) ); + snprintf( Buffer, 16, "li%0*d", Abc_Base10Log(Saig_ManRegNum(p)), Aig_ObjCioId(pObj) - Saig_ManPoNum(p) ); else assert( 0 ); return Buffer; --- src/base/abci/abc.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/base/abci/abc.c 2022-01-17 08:22:16.510371570 -0700 @@ -30577,7 +30577,7 @@ int Abc_CommandAbc9Put( Abc_Frame_t * pA else { assert( i >= Abc_NtkPoNum(pNtk) ); - sprintf( pSuffix, "_li%0*d", nDigits, i-Abc_NtkPoNum(pNtk) ); + snprintf( pSuffix, 100, "_li%0*d", nDigits, i-Abc_NtkPoNum(pNtk) ); Abc_ObjAssignName( pObj, (char *)Vec_PtrEntry(pAbc->pGia->vNamesOut, i), pSuffix ); } } @@ -43889,7 +43889,7 @@ int Abc_CommandAbc9Cone( Abc_Frame_t * p Gia_ManForEachPo( pAbc->pGia, pObj, i ) { Gia_Man_t * pOne = Gia_ManDupDfsCone( pAbc->pGia, pObj ); - sprintf( Buffer, "%s_%0*d.aig", Extra_FileNameGeneric(pAbc->pGia->pSpec), nDigits, i ); + snprintf( Buffer, 1000, "%s_%0*d.aig", Extra_FileNameGeneric(pAbc->pGia->pSpec), nDigits, i ); Gia_AigerWrite( pOne, Buffer, 0, 0, 0 ); Gia_ManStop( pOne ); } --- src/base/io/ioReadBlifMv.c.orig 2022-01-17 08:21:48.617409341 -0700 +++ src/base/io/ioReadBlifMv.c 2022-01-17 08:22:16.511371568 -0700 @@ -1627,7 +1627,7 @@ static int Io_MvParseLineMv( Io_MvMod_t ***********************************************************************/ static int Io_MvWriteValues( Abc_Obj_t * pNode, Vec_Str_t * vFunc ) { - char Buffer[10]; + char Buffer[12]; Abc_Obj_t * pFanin; int i; // add the fanin number of values --- src/base/io/ioReadPla.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/base/io/ioReadPla.c 2022-01-17 08:22:16.511371568 -0700 @@ -448,7 +448,7 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_Fil nDigits = Abc_Base10Log( nInputs ); for ( i = 0; i < nInputs; i++ ) { - sprintf( Buffer, "x%0*d", nDigits, i ); + snprintf( Buffer, 100, "x%0*d", nDigits, i ); Io_ReadCreatePi( pNtk, Buffer ); } } @@ -465,7 +465,7 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_Fil nDigits = Abc_Base10Log( nOutputs ); for ( i = 0; i < nOutputs; i++ ) { - sprintf( Buffer, "z%0*d", nDigits, i ); + snprintf( Buffer, 100, "z%0*d", nDigits, i ); Io_ReadCreatePo( pNtk, Buffer ); } } --- src/base/wlc/wlcNtk.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/base/wlc/wlcNtk.c 2022-01-17 08:22:16.512371567 -0700 @@ -1300,7 +1300,7 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) { if ( Wlc_ObjIsPo(pObj) ) continue; - sprintf( pBuffer, "%s%0*d", "fi", nDigits, i - Wlc_NtkPoNum(p) ); + snprintf( pBuffer, 100, "%s%0*d", "fi", nDigits, i - Wlc_NtkPoNum(p) ); NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); } @@ -1308,21 +1308,21 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) { if ( Wlc_ObjIsPi(pObj) ) continue; - sprintf( pBuffer, "%s%0*d", "fo", nDigits, i - Wlc_NtkPiNum(p) ); + snprintf( pBuffer, 100, "%s%0*d", "fo", nDigits, i - Wlc_NtkPiNum(p) ); NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); } nDigits = Abc_Base10Log( Wlc_NtkPoNum(p) ); Wlc_NtkForEachPo( p, pObj, i ) { - sprintf( pBuffer, "%s%0*d", "po", nDigits, i ); + snprintf( pBuffer, 100, "%s%0*d", "po", nDigits, i ); NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); } nDigits = Abc_Base10Log( Wlc_NtkPiNum(p) ); Wlc_NtkForEachPi( p, pObj, i ) { - sprintf( pBuffer, "%s%0*d", "pi", nDigits, i ); + snprintf( pBuffer, 100, "%s%0*d", "pi", nDigits, i ); NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); } @@ -1331,7 +1331,7 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) { if ( Wlc_ObjIsCi(pObj) || Wlc_ObjIsCo(pObj) ) continue; - sprintf( pBuffer, "%s%0*d", "n", nDigits, i ); + snprintf( pBuffer, 100, "%s%0*d", "n", nDigits, i ); NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); } --- src/map/mio/mioUtils.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/map/mio/mioUtils.c 2022-01-17 08:22:16.513371566 -0700 @@ -1711,7 +1711,7 @@ void Mio_LibraryShortNames( Mio_Library_ Mio_LibraryForEachGate( pLib, pGate ) { ABC_FREE( pGate->pName ); - sprintf( Buffer, "g%0*d", nDigits, ++c ); + snprintf( Buffer, 10000, "g%0*d", nDigits, ++c ); pGate->pName = Abc_UtilStrsav( Buffer ); // update formula Mio_LibraryShortFormula( pGate, pGate->pForm, Buffer ); --- src/map/scl/sclLibUtil.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/map/scl/sclLibUtil.c 2022-01-17 08:22:16.513371566 -0700 @@ -203,7 +203,7 @@ void Abc_SclShortNames( SC_Lib * p ) SC_RingForEachCell( pClass, pCell, k ) { ABC_FREE( pCell->pName ); - sprintf( Buffer, "g%0*d_%0*d", nDigits, i, nDigits2, k ); + snprintf( Buffer, 10000, "g%0*d_%0*d", nDigits, i, nDigits2, k ); pCell->pName = Abc_UtilStrsav( Buffer ); // formula SC_CellForEachPinOut( pCell, pPin, n ) --- src/opt/dau/dauMerge.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/opt/dau/dauMerge.c 2022-01-17 08:22:16.513371566 -0700 @@ -715,7 +715,7 @@ Dau_DsdMergeStorePrintDefs( pS ); // create new function // assert( nVarsTotal <= 6 ); - sprintf( pS->pOutput, "(%s%s)", pDsd0, pDsd1 ); + snprintf( pS->pOutput, DAU_MAX_STR, "(%s%s)", pDsd0, pDsd1 ); pTruth = Dau_DsdToTruth( pS->pOutput, nVarsTotal ); Status = Dau_DsdDecompose( pTruth, nVarsTotal, 0, 1, pS->pOutput ); //printf( "%d ", Status ); --- src/proof/fra/fraCore.c.orig 2021-12-29 14:08:32.000000000 -0700 +++ src/proof/fra/fraCore.c 2022-01-17 08:22:16.513371566 -0700 @@ -163,7 +163,7 @@ static inline void Fra_FraigNodeSpeculat // create manager with the logic for these two nodes pTemp = Aig_ManExtractMiter( p->pManFraig, pObjFraig, pObjReprFraig ); // dump the logic into a file - sprintf( FileName, "aig\\%03d.blif", ++Counter ); + snprintf( FileName, 20U, "aig\\%03d.blif", ++Counter ); Aig_ManDumpBlif( pTemp, FileName, NULL, NULL ); printf( "Speculation cone with %d nodes was written into file \"%s\".\n", Aig_ManNodeNum(pTemp), FileName ); // clean up