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/glslang-8.13.3743/OGLCompilersDLL/InitializeDll.cpp Examining data/glslang-8.13.3743/OGLCompilersDLL/InitializeDll.h Examining data/glslang-8.13.3743/SPIRV/GLSL.ext.AMD.h Examining data/glslang-8.13.3743/SPIRV/GLSL.ext.EXT.h Examining data/glslang-8.13.3743/SPIRV/GLSL.ext.KHR.h Examining data/glslang-8.13.3743/SPIRV/GLSL.ext.NV.h Examining data/glslang-8.13.3743/SPIRV/GLSL.std.450.h Examining data/glslang-8.13.3743/SPIRV/GlslangToSpv.cpp Examining data/glslang-8.13.3743/SPIRV/GlslangToSpv.h Examining data/glslang-8.13.3743/SPIRV/InReadableOrder.cpp Examining data/glslang-8.13.3743/SPIRV/Logger.cpp Examining data/glslang-8.13.3743/SPIRV/Logger.h Examining data/glslang-8.13.3743/SPIRV/NonSemanticDebugPrintf.h Examining data/glslang-8.13.3743/SPIRV/SPVRemapper.cpp Examining data/glslang-8.13.3743/SPIRV/SPVRemapper.h Examining data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp Examining data/glslang-8.13.3743/SPIRV/SpvBuilder.h Examining data/glslang-8.13.3743/SPIRV/SpvPostProcess.cpp Examining data/glslang-8.13.3743/SPIRV/SpvTools.cpp Examining data/glslang-8.13.3743/SPIRV/SpvTools.h Examining data/glslang-8.13.3743/SPIRV/bitutils.h Examining data/glslang-8.13.3743/SPIRV/disassemble.cpp Examining data/glslang-8.13.3743/SPIRV/disassemble.h Examining data/glslang-8.13.3743/SPIRV/doc.cpp Examining data/glslang-8.13.3743/SPIRV/doc.h Examining data/glslang-8.13.3743/SPIRV/hex_float.h Examining data/glslang-8.13.3743/SPIRV/spirv.hpp Examining data/glslang-8.13.3743/SPIRV/spvIR.h Examining data/glslang-8.13.3743/StandAlone/DirStackFileIncluder.h Examining data/glslang-8.13.3743/StandAlone/ResourceLimits.cpp Examining data/glslang-8.13.3743/StandAlone/ResourceLimits.h Examining data/glslang-8.13.3743/StandAlone/StandAlone.cpp Examining data/glslang-8.13.3743/StandAlone/Worklist.h Examining data/glslang-8.13.3743/StandAlone/resource_limits_c.cpp Examining data/glslang-8.13.3743/StandAlone/resource_limits_c.h Examining data/glslang-8.13.3743/StandAlone/spirv-remap.cpp Examining data/glslang-8.13.3743/Test/bar.h Examining data/glslang-8.13.3743/Test/foo.h Examining data/glslang-8.13.3743/Test/i1.h Examining data/glslang-8.13.3743/Test/inc1/badInc.h Examining data/glslang-8.13.3743/Test/inc1/bar.h Examining data/glslang-8.13.3743/Test/inc1/foo.h Examining data/glslang-8.13.3743/Test/inc1/path1/bar.h Examining data/glslang-8.13.3743/Test/inc1/path1/local.h Examining data/glslang-8.13.3743/Test/inc1/path1/notHere.h Examining data/glslang-8.13.3743/Test/inc1/path2/bar.h Examining data/glslang-8.13.3743/Test/inc1/path2/notHere.h Examining data/glslang-8.13.3743/Test/inc1/path2/remote.h Examining data/glslang-8.13.3743/Test/inc2/bar.h Examining data/glslang-8.13.3743/Test/inc2/foo.h Examining data/glslang-8.13.3743/Test/parent.h Examining data/glslang-8.13.3743/glslang/CInterface/glslang_c_interface.cpp Examining data/glslang-8.13.3743/glslang/GenericCodeGen/CodeGen.cpp Examining data/glslang-8.13.3743/glslang/GenericCodeGen/Link.cpp Examining data/glslang-8.13.3743/glslang/Include/BaseTypes.h Examining data/glslang-8.13.3743/glslang/Include/Common.h Examining data/glslang-8.13.3743/glslang/Include/ConstantUnion.h Examining data/glslang-8.13.3743/glslang/Include/InfoSink.h Examining data/glslang-8.13.3743/glslang/Include/InitializeGlobals.h Examining data/glslang-8.13.3743/glslang/Include/PoolAlloc.h Examining data/glslang-8.13.3743/glslang/Include/ResourceLimits.h Examining data/glslang-8.13.3743/glslang/Include/ShHandle.h Examining data/glslang-8.13.3743/glslang/Include/Types.h Examining data/glslang-8.13.3743/glslang/Include/arrays.h Examining data/glslang-8.13.3743/glslang/Include/glslang_c_interface.h Examining data/glslang-8.13.3743/glslang/Include/glslang_c_shader_types.h Examining data/glslang-8.13.3743/glslang/Include/intermediate.h Examining data/glslang-8.13.3743/glslang/Include/revision.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/Constant.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/InfoSink.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/IntermTraverse.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/Intermediate.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/LiveTraverser.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/ParseContextBase.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/ParseHelper.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/ParseHelper.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/PoolAlloc.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/RemoveTree.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/RemoveTree.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/Scan.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/Scan.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/ScanContext.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/ShaderLang.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/SymbolTable.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/SymbolTable.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/Versions.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/Versions.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/attribute.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/attribute.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/gl_types.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/limits.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/linkValidate.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/localintermediate.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/parseConst.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/parseVersions.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/pch.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/pch.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/Pp.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpAtom.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpContext.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpContext.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpScanner.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpTokens.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpTokens.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/propagateNoContraction.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/propagateNoContraction.h Examining data/glslang-8.13.3743/glslang/MachineIndependent/reflection.cpp Examining data/glslang-8.13.3743/glslang/MachineIndependent/reflection.h Examining data/glslang-8.13.3743/glslang/OSDependent/Unix/ossource.cpp Examining data/glslang-8.13.3743/glslang/OSDependent/Web/glslang.js.cpp Examining data/glslang-8.13.3743/glslang/OSDependent/Windows/main.cpp Examining data/glslang-8.13.3743/glslang/OSDependent/Windows/ossource.cpp Examining data/glslang-8.13.3743/glslang/OSDependent/osinclude.h Examining data/glslang-8.13.3743/glslang/Public/ShaderLang.h Examining data/glslang-8.13.3743/gtests/AST.FromFile.cpp Examining data/glslang-8.13.3743/gtests/BuiltInResource.FromFile.cpp Examining data/glslang-8.13.3743/gtests/Config.FromFile.cpp Examining data/glslang-8.13.3743/gtests/HexFloat.cpp Examining data/glslang-8.13.3743/gtests/Hlsl.FromFile.cpp Examining data/glslang-8.13.3743/gtests/Initializer.h Examining data/glslang-8.13.3743/gtests/Link.FromFile.Vk.cpp Examining data/glslang-8.13.3743/gtests/Link.FromFile.cpp Examining data/glslang-8.13.3743/gtests/Pp.FromFile.cpp Examining data/glslang-8.13.3743/gtests/Remap.FromFile.cpp Examining data/glslang-8.13.3743/gtests/Settings.cpp Examining data/glslang-8.13.3743/gtests/Settings.h Examining data/glslang-8.13.3743/gtests/Spv.FromFile.cpp Examining data/glslang-8.13.3743/gtests/TestFixture.cpp Examining data/glslang-8.13.3743/gtests/TestFixture.h Examining data/glslang-8.13.3743/gtests/main.cpp Examining data/glslang-8.13.3743/gtests/pch.cpp Examining data/glslang-8.13.3743/gtests/pch.h Examining data/glslang-8.13.3743/hlsl/hlslAttributes.cpp Examining data/glslang-8.13.3743/hlsl/hlslAttributes.h Examining data/glslang-8.13.3743/hlsl/hlslGrammar.cpp Examining data/glslang-8.13.3743/hlsl/hlslGrammar.h Examining data/glslang-8.13.3743/hlsl/hlslOpMap.cpp Examining data/glslang-8.13.3743/hlsl/hlslOpMap.h Examining data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp Examining data/glslang-8.13.3743/hlsl/hlslParseHelper.h Examining data/glslang-8.13.3743/hlsl/hlslParseables.cpp Examining data/glslang-8.13.3743/hlsl/hlslParseables.h Examining data/glslang-8.13.3743/hlsl/hlslScanContext.cpp Examining data/glslang-8.13.3743/hlsl/hlslScanContext.h Examining data/glslang-8.13.3743/hlsl/hlslTokenStream.cpp Examining data/glslang-8.13.3743/hlsl/hlslTokenStream.h Examining data/glslang-8.13.3743/hlsl/hlslTokens.h Examining data/glslang-8.13.3743/hlsl/pch.cpp Examining data/glslang-8.13.3743/hlsl/pch.h Examining data/glslang-8.13.3743/ndk_test/test.cpp FINAL RESULTS: data/glslang-8.13.3743/StandAlone/resource_limits_c.cpp:52:5: [4] (buffer) strcpy: 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). strcpy(c_str, cpp_str.c_str()); data/glslang-8.13.3743/glslang/Include/Common.h:55:13: [4] (format) snprintf: 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. #ifndef snprintf data/glslang-8.13.3743/glslang/Include/Common.h:56:13: [4] (format) snprintf: 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. #define snprintf sprintf_s data/glslang-8.13.3743/glslang/Include/Common.h:60:48: [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. #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) data/glslang-8.13.3743/glslang/Include/Common.h:64:48: [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. #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) data/glslang-8.13.3743/glslang/Include/InfoSink.h:78:58: [4] (format) snprintf: 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. snprintf(buf, size, (fabs(n) > 1e-8 && fabs(n) < 1e8) || n == 0.0f ? "%f" : "%g", n); data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:1919:21: [4] (format) snprintf: 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. snprintf(buf, bufSize, op, floatTypes[j], floatTypes[j]); data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:1924:25: [4] (format) snprintf: 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. snprintf(buf, bufSize, op, doubleTypes[j], doubleTypes[j]); data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:1931:21: [4] (format) snprintf: 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. snprintf(buf, bufSize, op, boolTypes[j], boolTypes[j]); data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:1936:17: [4] (format) snprintf: 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. snprintf(buf, bufSize, op, intTypes[j], intTypes[j]); data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp:3585:21: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. # define YYFPRINTF fprintf data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1193:19: [4] (format) snprintf: 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 len = snprintf(buf, maxSize, format, value); data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpTokens.cpp:89:9: [4] (format) snprintf: 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. #define snprintf sprintf_s data/glslang-8.13.3743/SPIRV/hex_float.h:751:10: [3] (random) setstate: 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. is.setstate(std::ios_base::failbit); data/glslang-8.13.3743/SPIRV/hex_float.h:789:8: [3] (random) setstate: 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. is.setstate(std::ios_base::failbit); data/glslang-8.13.3743/SPIRV/hex_float.h:823:8: [3] (random) setstate: 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. is.setstate(std::ios_base::failbit); data/glslang-8.13.3743/SPIRV/hex_float.h:932:10: [3] (random) setstate: 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. is.setstate(std::ios::failbit); data/glslang-8.13.3743/SPIRV/hex_float.h:963:10: [3] (random) setstate: 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. is.setstate(std::ios::failbit); data/glslang-8.13.3743/SPIRV/hex_float.h:976:12: [3] (random) setstate: 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. is.setstate(std::ios::failbit); data/glslang-8.13.3743/SPIRV/GlslangToSpv.cpp:8610: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[bufSize]; data/glslang-8.13.3743/SPIRV/GlslangToSpv.cpp:8635:9: [2] (misc) open: 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). out.open(baseName, std::ios::binary | std::ios::out); data/glslang-8.13.3743/SPIRV/GlslangToSpv.cpp:8650:9: [2] (misc) open: 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). out.open(baseName, std::ios::binary | std::ios::out); data/glslang-8.13.3743/SPIRV/bitutils.h:29:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(static_cast<void*>(&dest), &source, sizeof(dest)); data/glslang-8.13.3743/StandAlone/ResourceLimits.cpp:284:32: [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). const int value = std::atoi(valueStr.c_str()); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:334:33: [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). const int baseNum = atoi(argv[arg++]); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:335:32: [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). const int setNum = atoi(argv[arg++]); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:340:22: [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). singleBase = atoi(argv[arg++]); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:427:19: [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). int num = atoi(argv[0] + 2); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:1688:14: [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). FILE* f = fopen(filename, mode); data/glslang-8.13.3743/StandAlone/spirv-remap.cpp:86:12: [2] (misc) open: 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). fp.open(inFilename, std::fstream::in | std::fstream::binary); data/glslang-8.13.3743/StandAlone/spirv-remap.cpp:118:12: [2] (misc) open: 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). fp.open(outFile, std::fstream::out | std::fstream::binary); data/glslang-8.13.3743/glslang/CInterface/glslang_c_interface.cpp:421:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(out, program->spirv.data(), program->spirv.size() * sizeof(unsigned int)); data/glslang-8.13.3743/glslang/Include/Common.h:216: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 text[16]; // 32 bit ints are at most 10 digits in base 10 data/glslang-8.13.3743/glslang/Include/Common.h:223: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 text[16]; // 32 bit ints are at most 10 digits in base 10 data/glslang-8.13.3743/glslang/Include/InfoSink.h:77:79: [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. TInfoSinkBase& operator<<(float n) { const int size = 40; char buf[size]; data/glslang-8.13.3743/glslang/Include/InfoSink.h:99: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 locText[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:1915:13: [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[bufSize]; data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:6618: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 builtInConstant[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/Initialize.cpp:8128:19: [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. const char *coopExt[2] = { E_GL_NV_cooperative_matrix, E_GL_NV_integer_cooperative_matrix }; data/glslang-8.13.3743/glslang/MachineIndependent/ParseContextBase.cpp:57: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 szExtraInfo[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/ParseHelper.cpp:7662:11: [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. const char *extsrt[2] = { E_GL_NV_ray_tracing, E_GL_EXT_ray_tracing }; data/glslang-8.13.3743/glslang/MachineIndependent/PoolAlloc.cpp:163:13: [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 assertMsg[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/Scan.cpp:254: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 profileString[maxProfileLength]; data/glslang-8.13.3743/glslang/MachineIndependent/Scan.cpp:876:13: [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[2]; data/glslang-8.13.3743/glslang/MachineIndependent/SymbolTable.cpp:124:13: [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 text[16]; // plenty enough space for the small integers. data/glslang-8.13.3743/glslang/MachineIndependent/SymbolTable.cpp:165: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 buf[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/SymbolTable.h:413:13: [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[20]; data/glslang-8.13.3743/glslang/MachineIndependent/Versions.cpp:530: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 numberBuf[numberBufSize]; data/glslang-8.13.3743/glslang/MachineIndependent/Versions.cpp:690:13: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp:3832: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 const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp:4024: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 yymsgbuf[128]; data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp:4593:13: [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 errorOp[2] = {0, 0}; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1189: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 buf[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1255:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1264:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1273:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1282:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1291:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1300:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1309:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/intermOut.cpp:1318:17: [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[maxSize]; data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.cpp:302:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(inVarMaps, in, EShLangCount * (sizeof(TVarLiveMap*))); data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.cpp:303:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(outVarMaps, out, EShLangCount * (sizeof(TVarLiveMap*))); data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.cpp:304:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(uniformVarMap, uniform, EShLangCount * (sizeof(TVarLiveMap*))); data/glslang-8.13.3743/glslang/MachineIndependent/iomapper.cpp:466:29: [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 ent.newSet = atoi(getResourceSetBinding()[0].c_str()); data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/Pp.cpp:801: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 SrcStrName[2]; data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/Pp.cpp:858:21: [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). ppToken->ival = atoi(ppToken->name); data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/Pp.cpp:889: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 extensionName[MaxTokenLength + 1]; data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpAtom.cpp:165: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 t[2]; data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpContext.h:127: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 name[MaxTokenLength + 1]; data/glslang-8.13.3743/gtests/Config.FromFile.cpp:66:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(configChars, configContents.data(), len); data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:1330: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 elementNumBuf[20]; // sufficient for MAXINT data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6042:50: [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). unsigned int semanticNum = (unsigned int)atoi(semantic.c_str() + pos + 1); data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6108:35: [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). qualifier.layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6148:25: [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). regNumber = atoi(desc.substr(1, desc.size()).c_str()); data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6183:43: [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). qualifier.layoutSet = atoi(it[1].c_str()); data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6184:47: [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). qualifier.layoutBinding = atoi(it[2].c_str()) + subComponent; data/glslang-8.13.3743/hlsl/hlslParseHelper.cpp:6205:21: [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). setNumber = atoi(spaceDesc->substr(spaceLen, spaceDesc->size()).c_str()); data/glslang-8.13.3743/hlsl/hlslScanContext.cpp:571:17: [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[2]; data/glslang-8.13.3743/SPIRV/SPVRemapper.cpp:1232:25: [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. return std::equal(spir.begin() + typeStart + range.first, data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:116:44: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncmp(filename, currentFile, strlen(currentFile) + 1) != 0) { data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:484:15: [1] (buffer) mismatch: 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. if (! mismatch) data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:1082:15: [1] (buffer) mismatch: 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. if (! mismatch) { data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:1106:15: [1] (buffer) mismatch: 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. if (! mismatch) { data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2151:85: [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. Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, bool equal) data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2169: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. op = equal ? OpFOrdEqual : OpFOrdNotEqual; data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2173: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. op = equal ? OpIEqual : OpINotEqual; data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2176: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. op = equal ? OpLogicalEqual : OpLogicalNotEqual; data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2189:38: [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. resultId = createUnaryOp(equal ? OpAll : OpAny, boolType, resultId); data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2207:88: [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. Id subResultId = createCompositeCompare(precision, constituent1, constituent2, equal); data/glslang-8.13.3743/SPIRV/SpvBuilder.cpp:2212:49: [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. resultId = setPrecision(createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId), data/glslang-8.13.3743/StandAlone/DirStackFileIncluder.h:130:14: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). file.read(content, length); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:213:13: [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. if (equal != def.npos) data/glslang-8.13.3743/StandAlone/StandAlone.cpp:214:17: [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. def[equal] = ' '; data/glslang-8.13.3743/StandAlone/StandAlone.cpp:728:57: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strncmp(&argv[0][1], "dumpversion", strlen(&argv[0][1]) + 1) == 0 || data/glslang-8.13.3743/StandAlone/StandAlone.cpp:729:61: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncmp(&argv[0][1], "dumpfullversion", strlen(&argv[0][1]) + 1) == 0) data/glslang-8.13.3743/StandAlone/StandAlone.cpp:1470:23: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). lengths[0] = (int)strlen(shaderString); data/glslang-8.13.3743/StandAlone/StandAlone.cpp:1714:12: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (fgetc(in) != EOF) data/glslang-8.13.3743/StandAlone/spirv-remap.cpp:78:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(std::vector<SpvWord>& spv, const std::string& inFilename, int verbosity) data/glslang-8.13.3743/StandAlone/spirv-remap.cpp:98:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). fp.read((char *)&inWord, sizeof(inWord)); data/glslang-8.13.3743/StandAlone/spirv-remap.cpp:164:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(spv, filename, verbosity); data/glslang-8.13.3743/glslang/MachineIndependent/InfoSink.cpp:47:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). checkMem(strlen(s)); data/glslang-8.13.3743/glslang/MachineIndependent/ShaderLang.cpp:833:35: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). lengths[s + numPre] = strlen(shaderStrings[s]); data/glslang-8.13.3743/glslang/MachineIndependent/ShaderLang.cpp:980:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). lengths[0] = strlen(strings[0]); data/glslang-8.13.3743/glslang/MachineIndependent/ShaderLang.cpp:983:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). lengths[1] = strlen(strings[1]); data/glslang-8.13.3743/glslang/MachineIndependent/ShaderLang.cpp:989:30: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). lengths[postIndex] = strlen(strings[numStrings + numPre]); data/glslang-8.13.3743/glslang/MachineIndependent/glslang_tab.cpp:3732:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). # define yystrlen strlen data/glslang-8.13.3743/glslang/MachineIndependent/localintermediate.h:627:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t len = strlen(implicitCounterName); data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpScanner.cpp:1287:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(ppToken.name) + strlen(pastedPpToken.name) > MaxTokenLength) { data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpScanner.cpp:1287:40: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(ppToken.name) + strlen(pastedPpToken.name) > MaxTokenLength) { data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpScanner.cpp:1291:41: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). snprintf(&ppToken.name[0] + strlen(ppToken.name), sizeof(ppToken.name) - strlen(ppToken.name), data/glslang-8.13.3743/glslang/MachineIndependent/preprocessor/PpScanner.cpp:1291:86: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). snprintf(&ppToken.name[0] + strlen(ppToken.name), sizeof(ppToken.name) - strlen(ppToken.name), data/glslang-8.13.3743/gtests/TestFixture.cpp:156:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). fstream.read((char *)&inWord, sizeof(inWord)); data/glslang-8.13.3743/hlsl/hlslParseables.cpp:100:61: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; ANALYSIS SUMMARY: Hits = 114 Lines analyzed = 117252 in approximately 3.42 seconds (34241 lines/second) Physical Source Lines of Code (SLOC) = 86864 Hits@level = [0] 227 [1] 35 [2] 60 [3] 6 [4] 13 [5] 0 Hits@level+ = [0+] 341 [1+] 114 [2+] 79 [3+] 19 [4+] 13 [5+] 0 Hits/KSLOC@level+ = [0+] 3.92568 [1+] 1.3124 [2+] 0.909468 [3+] 0.218733 [4+] 0.149659 [5+] 0 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.