Blake Bender created GEODE-9553: ----------------------------------- Summary: Review and eliminate all remaining usage of sprintf, snprintf, etc Key: GEODE-9553 URL: https://issues.apache.org/jira/browse/GEODE-9553 Project: Geode Issue Type: Improvement Components: native client Reporter: Blake Bender
>From time to time, we will pick up a new version of a compiler on one or >another platform we build on, and get new complaints about potential buffer >overflows or other assorted badness around persistent use of sprintf. See the >following pull request, e.g.: https://github.com/apache/geode-native/pull/861 Fixing these when they come up is good as far as it goes, but we're really just applying band-aids to the problem. *All* use of sprintf is bad, snprintf only slightly less so. Someone needs to just go through the code and rewrite all instances in modern C++ using std::string, std::stringstream, etc. At a glance, here is the list of remaining files containing calls to sprintf: {code} c:\Users\bblake\src\geode-native>findstr /sm sprintf *.cpp cppcache\integration\test\ThinClientConflation.cpp cppcache\integration-test\fw_dunit.cpp cppcache\integration-test\testCacheless.cpp cppcache\integration-test\testOverflowPutGetSqLite.cpp cppcache\integration-test\testRegionMap.cpp cppcache\integration-test\testSerialization.cpp cppcache\integration-test\testThinClientBigValue.cpp cppcache\integration-test\testThinClientCacheablesLimits.cpp cppcache\integration-test\testThinClientCacheableStringArray.cpp cppcache\integration-test\testThinClientConflation.cpp cppcache\integration-test\testThinClientCq.cpp cppcache\integration-test\testThinClientCqDurable.cpp cppcache\integration-test\testThinClientCqFailover.cpp cppcache\integration-test\testThinClientCqHAFailover.cpp cppcache\integration-test\testThinClientCqIR.cpp cppcache\integration-test\testThinClientDeltaWithNotification.cpp cppcache\integration-test\testThinClientGetInterests.cpp cppcache\integration-test\testThinClientHADistOps.cpp cppcache\integration-test\testThinClientHAEventIDMap.cpp cppcache\integration-test\testThinClientHAFailover.cpp cppcache\integration-test\testThinClientHAFailoverRegex.cpp cppcache\integration-test\testThinClientHAMixedRedundancy.cpp cppcache\integration-test\testThinClientHAPeriodicAck.cpp cppcache\integration-test\testThinClientHeapLRU.cpp cppcache\integration-test\testThinClientInterest1_Bug1001.cpp cppcache\integration-test\testThinClientInterestNotify.cpp cppcache\integration-test\testThinClientIntResPolKeysInv.cpp cppcache\integration-test\testThinClientListenerCallbackArgTest.cpp cppcache\integration-test\testThinClientLRUExpiration.cpp cppcache\integration-test\testThinClientMultiDS.cpp cppcache\integration-test\testThinClientNotificationWithDeltaWithoutcache.cpp cppcache\integration-test\testThinClientPdxDeltaWithNotification.cpp cppcache\integration-test\testThinClientPdxInstance.cpp cppcache\integration-test\testThinClientPoolAttrTest.cpp cppcache\integration-test\testThinClientPoolExecuteFunctionThrowsException.cpp cppcache\integration-test\testThinClientPoolExecuteHAFunction.cpp cppcache\integration-test\testThinClientPoolExecuteHAFunctionPrSHOP.cpp cppcache\integration-test\testThinClientPoolRedundancy.cpp cppcache\integration-test\testThinClientPRPutAllFailover.cpp cppcache\integration-test\testThinClientRemoteQueryRS.cpp cppcache\integration-test\testThinClientRemoteQuerySS.cpp cppcache\integration-test\testThinClientRemoteRegionQuery.cpp cppcache\integration-test\testThinClientRemoveOps.cpp cppcache\integration-test\testThinClientSecurityPostAuthorization.cpp cppcache\integration-test\testXmlCacheCreationWithPools.cpp cppcache\integration-test\testXmlCacheInitialization.cpp tests\cpp\security\PkcsCredentialGenerator.cpp tests\cpp\security\XmlAuthzCredentialGenerator.cpp tests\cpp\testobject\BatchObject.cpp tests\cpp\testobject\DeltaPSTObject.cpp tests\cpp\testobject\DeltaTestImpl.cpp tests\cpp\testobject\EqStruct.cpp tests\cpp\testobject\FastAssetAccount.cpp tests\cpp\testobject\InvalidPdxUsage.cpp tests\cpp\testobject\NestedPdxObject.cpp tests\cpp\testobject\PdxClassV1.cpp tests\cpp\testobject\PdxClassV2.cpp tests\cpp\testobject\PdxType.cpp tests\cpp\testobject\Portfolio.cpp tests\cpp\testobject\PortfolioPdx.cpp tests\cpp\testobject\Position.cpp tests\cpp\testobject\PositionPdx.cpp tests\cpp\testobject\PSTObject.cpp tests\cpp\testobject\VariousPdxTypes.cpp {code} and snprintf: {code} c:\Users\bblake\src\geode-native>findstr /sm snprintf *.cpp cppcache\src\CacheXmlParser.cpp cppcache\src\CqEventImpl.cpp cppcache\src\Log.cpp cppcache\src\PdxFieldType.cpp cppcache\src\PdxInstanceImpl.cpp cppcache\src\RegionFactory.cpp cppcache\src\RemoteQuery.cpp cppcache\src\statistics\AtomicStatisticsImpl.cpp cppcache\src\statistics\OsStatisticsImpl.cpp cppcache\src\TcrMessage.cpp cppcache\src\ThinClientRegion.cpp cppcache\src\Utils.cpp tests\cpp\testobject\Portfolio.cpp tests\cpp\testobject\PortfolioPdx.cpp {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)