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)