Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/cpputest-4.0/generated/CppUTestGeneratedConfig.h Examining data/cpputest-4.0/platforms/iar/tests/CppUTestExt/AllTests.cpp Examining data/cpputest-4.0/platforms/iar/tests/AllTests.cpp Examining data/cpputest-4.0/platforms/iar/tests/AllTests.h Examining data/cpputest-4.0/platforms/CCStudio/tests/CppUTest/AllTestsForTarget.cpp Examining data/cpputest-4.0/platforms/CCStudio/tests/CppUTestExt/AllTestsForTarget.cpp Examining data/cpputest-4.0/include/Platforms/c2000/stdint.h Examining data/cpputest-4.0/include/CppUTest/JUnitTestOutput.h Examining data/cpputest-4.0/include/CppUTest/TestRegistry.h Examining data/cpputest-4.0/include/CppUTest/CommandLineTestRunner.h Examining data/cpputest-4.0/include/CppUTest/SimpleMutex.h Examining data/cpputest-4.0/include/CppUTest/MemoryLeakWarningPlugin.h Examining data/cpputest-4.0/include/CppUTest/TestHarness_c.h Examining data/cpputest-4.0/include/CppUTest/TeamCityTestOutput.h Examining data/cpputest-4.0/include/CppUTest/TestFailure.h Examining data/cpputest-4.0/include/CppUTest/TestFilter.h Examining data/cpputest-4.0/include/CppUTest/TestHarness.h Examining data/cpputest-4.0/include/CppUTest/CppUTestConfig.h Examining data/cpputest-4.0/include/CppUTest/PlatformSpecificFunctions_c.h Examining data/cpputest-4.0/include/CppUTest/Utest.h Examining data/cpputest-4.0/include/CppUTest/SimpleStringInternalCache.h Examining data/cpputest-4.0/include/CppUTest/TestTestingFixture.h Examining data/cpputest-4.0/include/CppUTest/CppUTestGeneratedConfig.h Examining data/cpputest-4.0/include/CppUTest/StandardCLibrary.h Examining data/cpputest-4.0/include/CppUTest/TestOutput.h Examining data/cpputest-4.0/include/CppUTest/MemoryLeakDetectorNewMacros.h Examining data/cpputest-4.0/include/CppUTest/TestResult.h Examining data/cpputest-4.0/include/CppUTest/TestMemoryAllocator.h Examining data/cpputest-4.0/include/CppUTest/MemoryLeakDetectorMallocMacros.h Examining data/cpputest-4.0/include/CppUTest/SimpleString.h Examining data/cpputest-4.0/include/CppUTest/CommandLineArguments.h Examining data/cpputest-4.0/include/CppUTest/UtestMacros.h Examining data/cpputest-4.0/include/CppUTest/PlatformSpecificFunctions.h Examining data/cpputest-4.0/include/CppUTest/TestPlugin.h Examining data/cpputest-4.0/include/CppUTest/MemoryLeakDetector.h Examining data/cpputest-4.0/include/CppUTestExt/MockCheckedExpectedCall.h Examining data/cpputest-4.0/include/CppUTestExt/MockExpectedCallsList.h Examining data/cpputest-4.0/include/CppUTestExt/MockSupport_c.h Examining data/cpputest-4.0/include/CppUTestExt/IEEE754ExceptionsPlugin.h Examining data/cpputest-4.0/include/CppUTestExt/MockNamedValue.h Examining data/cpputest-4.0/include/CppUTestExt/MemoryReportAllocator.h Examining data/cpputest-4.0/include/CppUTestExt/GTestConvertor.h Examining data/cpputest-4.0/include/CppUTestExt/MockSupportPlugin.h Examining data/cpputest-4.0/include/CppUTestExt/MockCheckedActualCall.h Examining data/cpputest-4.0/include/CppUTestExt/MemoryReportFormatter.h Examining data/cpputest-4.0/include/CppUTestExt/CodeMemoryReportFormatter.h Examining data/cpputest-4.0/include/CppUTestExt/MockExpectedCall.h Examining data/cpputest-4.0/include/CppUTestExt/GTest.h Examining data/cpputest-4.0/include/CppUTestExt/GTestSupport.h Examining data/cpputest-4.0/include/CppUTestExt/MockFailure.h Examining data/cpputest-4.0/include/CppUTestExt/MockActualCall.h Examining data/cpputest-4.0/include/CppUTestExt/MockSupport.h Examining data/cpputest-4.0/include/CppUTestExt/GMock.h Examining data/cpputest-4.0/include/CppUTestExt/OrderedTest.h Examining data/cpputest-4.0/include/CppUTestExt/MemoryReporterPlugin.h Examining data/cpputest-4.0/tests/CppUTest/CompatabilityTests.cpp Examining data/cpputest-4.0/tests/CppUTest/SetPluginTest.cpp Examining data/cpputest-4.0/tests/CppUTest/UtestPlatformTest.cpp Examining data/cpputest-4.0/tests/CppUTest/UtestTest.cpp Examining data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp Examining data/cpputest-4.0/tests/CppUTest/CommandLineTestRunnerTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestFailureNaNTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestRegistryTest.cpp Examining data/cpputest-4.0/tests/CppUTest/CheatSheetTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestMemoryAllocatorTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TeamCityOutputTest.cpp Examining data/cpputest-4.0/tests/CppUTest/SimpleStringCacheTest.cpp Examining data/cpputest-4.0/tests/CppUTest/PreprocessorTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestFilterTest.cpp Examining data/cpputest-4.0/tests/CppUTest/MemoryLeakWarningTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestFailureTest.cpp Examining data/cpputest-4.0/tests/CppUTest/AllocLetTestFreeTest.cpp Examining data/cpputest-4.0/tests/CppUTest/CommandLineArgumentsTest.cpp Examining data/cpputest-4.0/tests/CppUTest/AllocLetTestFree.c Examining data/cpputest-4.0/tests/CppUTest/AllocationInCFile.h Examining data/cpputest-4.0/tests/CppUTest/PluginTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestOutputTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestHarness_cTestCFile.c Examining data/cpputest-4.0/tests/CppUTest/AllocationInCppFile.h Examining data/cpputest-4.0/tests/CppUTest/SimpleMutexTest.cpp Examining data/cpputest-4.0/tests/CppUTest/DummyMemoryLeakDetector.h Examining data/cpputest-4.0/tests/CppUTest/MemoryOperatorOverloadTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestHarness_cTest.cpp Examining data/cpputest-4.0/tests/CppUTest/MemoryLeakDetectorTest.cpp Examining data/cpputest-4.0/tests/CppUTest/TestUTestMacro.cpp Examining data/cpputest-4.0/tests/CppUTest/JUnitOutputTest.cpp Examining data/cpputest-4.0/tests/CppUTest/AllTests.cpp Examining data/cpputest-4.0/tests/CppUTest/AllTests.h Examining data/cpputest-4.0/tests/CppUTest/TestUTestStringMacro.cpp Examining data/cpputest-4.0/tests/CppUTest/AllocationInCFile.c Examining data/cpputest-4.0/tests/CppUTest/TestResultTest.cpp Examining data/cpputest-4.0/tests/CppUTest/AllocationInCppFile.cpp Examining data/cpputest-4.0/tests/CppUTest/TestInstallerTest.cpp Examining data/cpputest-4.0/tests/CppUTest/AllocLetTestFree.h Examining data/cpputest-4.0/tests/CppUTest/DummyMemoryLeakDetector.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockSupport_cTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockParameterTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockFailureTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockFakeLongLong.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockSupportTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/ExpectedFunctionsListTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/IEEE754PluginTest_c.c Examining data/cpputest-4.0/tests/CppUTestExt/CodeMemoryReporterTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockComparatorCopierTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/GMockTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockPluginTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockExpectedCallTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockCallTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockSupport_cTestCFile.h Examining data/cpputest-4.0/tests/CppUTestExt/IEEE754PluginTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockHierarchyTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/GTest1Test.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MemoryReportAllocatorTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockStrictOrderTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/GTest2ConvertorTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MemoryReportFormatterTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/OrderedTestTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockFailureReporterForTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockFailureReporterForTest.h Examining data/cpputest-4.0/tests/CppUTestExt/MockReturnValueTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/IEEE754PluginTest_c.h Examining data/cpputest-4.0/tests/CppUTestExt/MockCheatSheetTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockActualCallTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/OrderedTestTest.h Examining data/cpputest-4.0/tests/CppUTestExt/AllTests.cpp Examining data/cpputest-4.0/tests/CppUTestExt/OrderedTestTest_c.c Examining data/cpputest-4.0/tests/CppUTestExt/MemoryReporterPluginTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockNamedValueTest.cpp Examining data/cpputest-4.0/tests/CppUTestExt/MockSupport_cTestCFile.c Examining data/cpputest-4.0/platforms_examples/armcc/LPC1833/tests/test1.cpp Examining data/cpputest-4.0/platforms_examples/armcc/LPC1833/tests/main.cpp Examining data/cpputest-4.0/platforms_examples/armcc/LPC1833/src/dummy.c Examining data/cpputest-4.0/platforms_examples/armcc/LPC1768/tests/main.cpp Examining data/cpputest-4.0/platforms_examples/armcc/AT91SAM7A3/tests/main.cpp Examining data/cpputest-4.0/examples/AllTests/MockPrinter.h Examining data/cpputest-4.0/examples/AllTests/HelloTest.cpp Examining data/cpputest-4.0/examples/AllTests/EventDispatcherTest.cpp Examining data/cpputest-4.0/examples/AllTests/CircularBufferTest.cpp Examining data/cpputest-4.0/examples/AllTests/PrinterTest.cpp Examining data/cpputest-4.0/examples/AllTests/MockDocumentationTest.cpp Examining data/cpputest-4.0/examples/AllTests/AllTests.cpp Examining data/cpputest-4.0/examples/AllTests/AllTests.h Examining data/cpputest-4.0/examples/AllTests/FEDemoTest.cpp Examining data/cpputest-4.0/examples/ApplicationLib/Printer.h Examining data/cpputest-4.0/examples/ApplicationLib/hello.c Examining data/cpputest-4.0/examples/ApplicationLib/Printer.cpp Examining data/cpputest-4.0/examples/ApplicationLib/CircularBuffer.h Examining data/cpputest-4.0/examples/ApplicationLib/ExamplesNewOverrides.h Examining data/cpputest-4.0/examples/ApplicationLib/CircularBuffer.cpp Examining data/cpputest-4.0/examples/ApplicationLib/EventDispatcher.cpp Examining data/cpputest-4.0/examples/ApplicationLib/hello.h Examining data/cpputest-4.0/examples/ApplicationLib/EventDispatcher.h Examining data/cpputest-4.0/scripts/UnityTemplates/ClassNameCTest.cpp Examining data/cpputest-4.0/scripts/UnityTemplates/InterfaceCTest.cpp Examining data/cpputest-4.0/scripts/UnityTemplates/ClassNameCIoDriverTest.cpp Examining data/cpputest-4.0/scripts/UnityTemplates/FunctionNameCTest.cpp Examining data/cpputest-4.0/scripts/UnityTemplates/ClassNameCMultipleInstanceTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameC.c Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ProjectTemplate/include/util/ProjectBuildTime.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/ProjectTemplate/tests/util/ProjectBuildTimeTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ProjectTemplate/tests/AllTests.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ProjectTemplate/src/util/ProjectBuildTime.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/MockClassNameC.c Examining data/cpputest-4.0/scripts/CppUnitTemplates/InterfaceCTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCMultipleInstance.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCPolymorphic.c Examining data/cpputest-4.0/scripts/CppUnitTemplates/MockClassNameC.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameC.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCMultipleInstance.c Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassName.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/InterfaceTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCMultipleInstanceTest.cpp Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassNameCPolymorphic.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/ClassName.h Examining data/cpputest-4.0/scripts/CppUnitTemplates/MockClassName.h Examining data/cpputest-4.0/scripts/templates/ClassNameC.c Examining data/cpputest-4.0/scripts/templates/ClassNameCTest.cpp Examining data/cpputest-4.0/scripts/templates/ProjectTemplate/include/util/ProjectBuildTime.h Examining data/cpputest-4.0/scripts/templates/ProjectTemplate/tests/util/ProjectBuildTimeTest.cpp Examining data/cpputest-4.0/scripts/templates/ProjectTemplate/tests/AllTests.cpp Examining data/cpputest-4.0/scripts/templates/ProjectTemplate/src/util/ProjectBuildTime.cpp Examining data/cpputest-4.0/scripts/templates/MockClassNameC.c Examining data/cpputest-4.0/scripts/templates/InterfaceCTest.cpp Examining data/cpputest-4.0/scripts/templates/FunctionNameC.h Examining data/cpputest-4.0/scripts/templates/ClassNameCMultipleInstance.h Examining data/cpputest-4.0/scripts/templates/ClassNameCIoDriverTest.cpp Examining data/cpputest-4.0/scripts/templates/ClassNameCIoDriver.h Examining data/cpputest-4.0/scripts/templates/ClassNameCPolymorphic.c Examining data/cpputest-4.0/scripts/templates/FunctionNameCTest.cpp Examining data/cpputest-4.0/scripts/templates/MockClassNameC.h Examining data/cpputest-4.0/scripts/templates/ClassNameC.h Examining data/cpputest-4.0/scripts/templates/ClassNameCMultipleInstance.c Examining data/cpputest-4.0/scripts/templates/FunctionNameC.c Examining data/cpputest-4.0/scripts/templates/ClassNameTest.cpp Examining data/cpputest-4.0/scripts/templates/ClassName.cpp Examining data/cpputest-4.0/scripts/templates/InterfaceTest.cpp Examining data/cpputest-4.0/scripts/templates/ClassNameCMultipleInstanceTest.cpp Examining data/cpputest-4.0/scripts/templates/ClassNameCPolymorphic.h Examining data/cpputest-4.0/scripts/templates/ClassNameCIoDriver.c Examining data/cpputest-4.0/scripts/templates/ClassName.h Examining data/cpputest-4.0/scripts/templates/MockClassName.h Examining data/cpputest-4.0/src/Platforms/Iar/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/Dos/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/Symbian/SymbianMemoryLeakWarning.cpp Examining data/cpputest-4.0/src/Platforms/Symbian/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/Keil/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/armcc/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/C2000/UtestPlatform.cpp Examining data/cpputest-4.0/src/Platforms/GccNoStdC/UtestPlatform.cpp Examining data/cpputest-4.0/src/CppUTest/TestOutput.cpp Examining data/cpputest-4.0/src/CppUTest/TestFilter.cpp Examining data/cpputest-4.0/src/CppUTest/TestMemoryAllocator.cpp Examining data/cpputest-4.0/src/CppUTest/TestFailure.cpp Examining data/cpputest-4.0/src/CppUTest/SimpleString.cpp Examining data/cpputest-4.0/src/CppUTest/MemoryLeakWarningPlugin.cpp Examining data/cpputest-4.0/src/CppUTest/TeamCityTestOutput.cpp Examining data/cpputest-4.0/src/CppUTest/Utest.cpp Examining data/cpputest-4.0/src/CppUTest/TestHarness_c.cpp Examining data/cpputest-4.0/src/CppUTest/SimpleStringInternalCache.cpp Examining data/cpputest-4.0/src/CppUTest/TestResult.cpp Examining data/cpputest-4.0/src/CppUTest/CommandLineArguments.cpp Examining data/cpputest-4.0/src/CppUTest/MemoryLeakDetector.cpp Examining data/cpputest-4.0/src/CppUTest/SimpleMutex.cpp Examining data/cpputest-4.0/src/CppUTest/TestTestingFixture.cpp Examining data/cpputest-4.0/src/CppUTest/JUnitTestOutput.cpp Examining data/cpputest-4.0/src/CppUTest/TestPlugin.cpp Examining data/cpputest-4.0/src/CppUTest/CommandLineTestRunner.cpp Examining data/cpputest-4.0/src/CppUTest/TestRegistry.cpp Examining data/cpputest-4.0/src/CppUTestExt/MemoryReporterPlugin.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockFailure.cpp Examining data/cpputest-4.0/src/CppUTestExt/GTest.cpp Examining data/cpputest-4.0/src/CppUTestExt/CodeMemoryReportFormatter.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockExpectedCallsList.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockNamedValue.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockSupport_c.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockExpectedCall.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockActualCall.cpp Examining data/cpputest-4.0/src/CppUTestExt/MemoryReportFormatter.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockSupportPlugin.cpp Examining data/cpputest-4.0/src/CppUTestExt/MemoryReportAllocator.cpp Examining data/cpputest-4.0/src/CppUTestExt/IEEE754ExceptionsPlugin.cpp Examining data/cpputest-4.0/src/CppUTestExt/MockSupport.cpp Examining data/cpputest-4.0/src/CppUTestExt/OrderedTest.cpp FINAL RESULTS: data/cpputest-4.0/examples/ApplicationLib/hello.c:36:42: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int (*PrintFormated)(const char*, ...) = printf; data/cpputest-4.0/include/CppUTest/MemoryLeakDetector.h:61:54: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. void add(const char* format, ...) _check_format_(printf, 2, 3); data/cpputest-4.0/include/CppUTest/SimpleString.h:100:18: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). static char* StrNCpy(char* s1, const char* s2, size_t n); data/cpputest-4.0/include/CppUTest/SimpleString.h:206:71: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. SimpleString StringFromFormat(const char* format, ...) _check_format_(printf, 1, 2); data/cpputest-4.0/src/CppUTest/SimpleString.cpp:193:21: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). char* SimpleString::StrNCpy(char* s1, const char* s2, size_t n) data/cpputest-4.0/src/CppUTest/SimpleString.cpp:307:9: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). StrNCpy(next, other, otherStringLength + 1); data/cpputest-4.0/src/CppUTest/SimpleString.cpp:408:17: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). StrNCpy(&newbuf[j], with, withlen + 1); data/cpputest-4.0/src/CppUTest/SimpleString.cpp:490:5: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). StrNCpy(tbuffer + originalSize, rhs, additionalStringSize); data/cpputest-4.0/src/CppUTest/SimpleString.cpp:558:5: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). StrNCpy(newBuffer, bufferToCopy, bufferSize); data/cpputest-4.0/src/CppUTest/SimpleString.cpp:570:5: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). StrNCpy(bufferToCopy, getBuffer(), sizeToCopy); data/cpputest-4.0/src/CppUTestExt/CodeMemoryReportFormatter.cpp:70:19: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). SimpleString::StrNCpy(newNode->variableName_, variableName, MAX_VARIABLE_NAME_LENGTH); data/cpputest-4.0/src/Platforms/C2000/UtestPlatform.cpp:129:12: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. extern int vsnprintf(char*, size_t, const char*, va_list); // not std::vsnprintf() data/cpputest-4.0/src/Platforms/C2000/UtestPlatform.cpp:131:81: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. extern int (*PlatformSpecificVSNprintf)(char *, size_t, const char*, va_list) = vsnprintf; data/cpputest-4.0/src/Platforms/Dos/UtestPlatform.cpp:119:12: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. return vsnprintf(str, size, format, args); data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp:236:102: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int (*PlatformSpecificVSNprintf)(char *str, size_t size, const char* format, va_list va_args_list) = vsnprintf; data/cpputest-4.0/src/Platforms/Iar/UtestPlatform.cpp:127:94: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int (*PlatformSpecificVSNprintf)(char *str, size_t size, const char* format, va_list args) = vsnprintf; data/cpputest-4.0/src/Platforms/Keil/UtestPlatform.cpp:138:105: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. extern int (*PlatformSpecificVSNprintf)(char *str, size_t size, const char* format, va_list args) = vsnprintf; data/cpputest-4.0/src/Platforms/Symbian/UtestPlatform.cpp:92:12: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. return vsnprintf(str, size, format, args); data/cpputest-4.0/src/Platforms/armcc/UtestPlatform.cpp:127:94: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int (*PlatformSpecificVSNprintf)(char *str, size_t size, const char* format, va_list args) = vsnprintf; data/cpputest-4.0/tests/CppUTest/MemoryLeakDetectorTest.cpp:166:19: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). SimpleString::StrNCpy(mem, "test1", 6); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:941:46: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). STRCMP_EQUAL("womanXXXXX", SimpleString::StrNCpy(str, "woman", 5)); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:947:41: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). STRCMP_EQUAL("woman", SimpleString::StrNCpy(str, "woman", 6)); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:952:43: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). POINTERS_EQUAL(NULLPTR, SimpleString::StrNCpy(NULLPTR, "woman", 6)); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:958:41: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). STRCMP_EQUAL("woman", SimpleString::StrNCpy(str, "woman", 8)); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:964:46: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). STRCMP_EQUAL("XXXXXXXXXX", SimpleString::StrNCpy(str, "woman", 0)); data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:970:19: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). SimpleString::StrNCpy(str+3, "e", 1); data/cpputest-4.0/tests/CppUTest/TestHarness_cTest.cpp:758:19: [4] (buffer) StrNCpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). SimpleString::StrNCpy(mem1, number_string, 10); data/cpputest-4.0/src/Platforms/Dos/UtestPlatform.cpp:191:5: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand(seed); data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp:295:47: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. void (*PlatformSpecificSrand)(unsigned int) = srand; data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:188:47: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. void (*PlatformSpecificSrand)(unsigned int) = srand; data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:209:2: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. InitializeCriticalSection(critical_section); data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:215:2: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. EnterCriticalSection((CRITICAL_SECTION*)mutex); data/cpputest-4.0/include/CppUTest/CppUTestConfig.h:283:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char dummy[CPPUTEST_SIZE_OF_FAKE_LONG_LONG_TYPE]; data/cpputest-4.0/include/CppUTest/CppUTestConfig.h:292:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char dummy[CPPUTEST_SIZE_OF_FAKE_LONG_LONG_TYPE]; data/cpputest-4.0/include/CppUTest/MemoryLeakDetector.h:70:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer_[SIMPLE_STRING_BUFFER_LEN]; data/cpputest-4.0/include/CppUTestExt/MockNamedValue.h:174:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char longLongPlaceholder_[CPPUTEST_SIZE_OF_FAKE_LONG_LONG_TYPE]; data/cpputest-4.0/include/CppUTestExt/MockSupport_c.h:68:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char longLongPlaceholder[CPPUTEST_SIZE_OF_FAKE_LONG_LONG_TYPE]; data/cpputest-4.0/src/CppUTest/SimpleString.cpp:503:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pad[2]; data/cpputest-4.0/src/CppUTest/SimpleString.cpp:867:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char defaultBuffer[sizeOfdefaultBuffer]; data/cpputest-4.0/src/CppUTest/TeamCityTestOutput.cpp:58:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char str[3]; data/cpputest-4.0/src/CppUTestExt/CodeMemoryReportFormatter.cpp:41:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char variableName_[MAX_VARIABLE_NAME_LENGTH + 1]; data/cpputest-4.0/src/Platforms/C2000/UtestPlatform.cpp:58:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char buffer [BUFFER_SIZE]; /* "never used" warning is OK */ data/cpputest-4.0/src/Platforms/C2000/UtestPlatform.cpp:135:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return fopen(filename, flag); data/cpputest-4.0/src/Platforms/Dos/UtestPlatform.cpp:128:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return fopen(filename, flag); data/cpputest-4.0/src/Platforms/Dos/UtestPlatform.cpp:175:12: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. return memcpy(s1, s2, size); data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp:213:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char dateTime[80]; data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp:245:11: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return fopen(filename, flag); data/cpputest-4.0/src/Platforms/Gcc/UtestPlatform.cpp:274:63: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. void* (*PlatformSpecificMemCpy)(void*, const void*, size_t) = memcpy; data/cpputest-4.0/src/Platforms/Iar/UtestPlatform.cpp:164:63: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. void* (*PlatformSpecificMemCpy)(void*, const void*, size_t) = memcpy; data/cpputest-4.0/src/Platforms/Keil/UtestPlatform.cpp:132:16: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). return atoi(str); data/cpputest-4.0/src/Platforms/Keil/UtestPlatform.cpp:167:78: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. void* (*PlatformSpecificMemCpy)(void* s1, const void* s2, size_t size) = memcpy; data/cpputest-4.0/src/Platforms/Symbian/UtestPlatform.cpp:120:12: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. return memcpy(s1, s2, size); data/cpputest-4.0/src/Platforms/Symbian/UtestPlatform.cpp:129:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return fopen(filename, flag); data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:29:47: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). #define FOPEN(fp, filename, flag) *(fp) = fopen((filename), (flag)) data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:31:35: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. #define LOCALTIME(_tm, timer) memcpy(_tm, localtime(timer), sizeof(tm)); data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:110:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char dateTime[80]; data/cpputest-4.0/src/Platforms/VisualCpp/UtestPlatform.cpp:193:74: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. void* (*PlatformSpecificMemCpy)(void* s1, const void* s2, size_t size) = memcpy; data/cpputest-4.0/src/Platforms/armcc/UtestPlatform.cpp:131:11: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return fopen(filename, flag); data/cpputest-4.0/src/Platforms/armcc/UtestPlatform.cpp:159:63: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. void* (*PlatformSpecificMemCpy)(void*, const void*, size_t) = memcpy; data/cpputest-4.0/tests/CppUTest/MemoryLeakDetectorTest.cpp:180:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char *mem[amount_alloc]; data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:760:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[10]; data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:769:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[10]; data/cpputest-4.0/tests/CppUTest/SimpleStringTest.cpp:1093:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char value[129]; data/cpputest-4.0/tests/CppUTestExt/MockExpectedCallTest.cpp:593:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buffer_value[3]; data/cpputest-4.0/tests/CppUTestExt/MockExpectedCallTest.cpp:608:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buffer_value[3]; data/cpputest-4.0/include/CppUTestExt/MockNamedValue.h:69:44: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. MockFunctionComparator(isEqualFunction equal, valueToStringFunction valToString) data/cpputest-4.0/include/CppUTestExt/MockNamedValue.h:70:18: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. : equal_(equal), valueToString_(valToString) {} data/cpputest-4.0/src/CppUTestExt/MockSupport_c.cpp:80:92: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. MockCFunctionComparatorNode(MockCFunctionComparatorNode* next, MockTypeEqualFunction_c equal, MockTypeValueToStringFunction_c toString) data/cpputest-4.0/src/CppUTestExt/MockSupport_c.cpp:81:31: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. : next_(next), equal_(equal), toString_(toString) {} ANALYSIS SUMMARY: Hits = 69 Lines analyzed = 45543 in approximately 1.35 seconds (33729 lines/second) Physical Source Lines of Code (SLOC) = 32723 Hits@level = [0] 6 [1] 4 [2] 33 [3] 5 [4] 27 [5] 0 Hits@level+ = [0+] 75 [1+] 69 [2+] 65 [3+] 32 [4+] 27 [5+] 0 Hits/KSLOC@level+ = [0+] 2.29197 [1+] 2.10861 [2+] 1.98637 [3+] 0.977905 [4+] 0.825108 [5+] 0 Dot directories skipped = 3 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.