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/3depict-0.0.22/src/gl/select.h Examining data/3depict-0.0.22/src/gl/tr.cpp Examining data/3depict-0.0.22/src/gl/textures.cpp Examining data/3depict-0.0.22/src/gl/select.cpp Examining data/3depict-0.0.22/src/gl/effect.cpp Examining data/3depict-0.0.22/src/gl/drawables.h Examining data/3depict-0.0.22/src/gl/cameras.cpp Examining data/3depict-0.0.22/src/gl/tr.h Examining data/3depict-0.0.22/src/gl/cameras.h Examining data/3depict-0.0.22/src/gl/scene.cpp Examining data/3depict-0.0.22/src/gl/textures.h Examining data/3depict-0.0.22/src/gl/drawables.cpp Examining data/3depict-0.0.22/src/gl/isoSurface.h Examining data/3depict-0.0.22/src/gl/scene.h Examining data/3depict-0.0.22/src/gl/effect.h Examining data/3depict-0.0.22/src/gl/isoSurface.cpp Examining data/3depict-0.0.22/src/gl/glDebug.h Examining data/3depict-0.0.22/src/wx/wxcomponents.cpp Examining data/3depict-0.0.22/src/wx/wxcommon.cpp Examining data/3depict-0.0.22/src/wx/propertyGridUpdater.h Examining data/3depict-0.0.22/src/wx/propertyGridUpdater.cpp Examining data/3depict-0.0.22/src/wx/wxcommon.h Examining data/3depict-0.0.22/src/wx/wxcomponents.h Examining data/3depict-0.0.22/src/common/basics.cpp Examining data/3depict-0.0.22/src/common/pngread.c Examining data/3depict-0.0.22/src/common/assertion.cpp Examining data/3depict-0.0.22/src/common/endianTest.h Examining data/3depict-0.0.22/src/common/mathfuncs.cpp Examining data/3depict-0.0.22/src/common/stringFuncs.cpp Examining data/3depict-0.0.22/src/common/basics.h Examining data/3depict-0.0.22/src/common/pngread.h Examining data/3depict-0.0.22/src/common/voxels.cpp Examining data/3depict-0.0.22/src/common/mathfuncs.h Examining data/3depict-0.0.22/src/common/translation.h Examining data/3depict-0.0.22/src/common/mesh.h Examining data/3depict-0.0.22/src/common/stringFuncs.h Examining data/3depict-0.0.22/src/common/colourmap.h Examining data/3depict-0.0.22/src/common/gsl_helper.cpp Examining data/3depict-0.0.22/src/common/array2D.h Examining data/3depict-0.0.22/src/common/assertion.h Examining data/3depict-0.0.22/src/common/colourmap.cpp Examining data/3depict-0.0.22/src/common/xmlHelper.h Examining data/3depict-0.0.22/src/common/constants.cpp Examining data/3depict-0.0.22/src/common/constants.h Examining data/3depict-0.0.22/src/common/voxels.h Examining data/3depict-0.0.22/src/common/xmlHelper.cpp Examining data/3depict-0.0.22/src/common/mesh.cpp Examining data/3depict-0.0.22/src/common/gsl_helper.h Examining data/3depict-0.0.22/src/gui/glPane.h Examining data/3depict-0.0.22/src/gui/glPane.cpp Examining data/3depict-0.0.22/src/gui/cropPanel.cpp Examining data/3depict-0.0.22/src/gui/dialogs/autosaveDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateFilterDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/ExportPos.h Examining data/3depict-0.0.22/src/gui/dialogs/ExportRngDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/rangeEditDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/autosaveDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/StashDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/filterErrorDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/transferFuncDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/StashDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/stringKeyFrameDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/choiceKeyFrameDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/choiceKeyFrameDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/colourKeyFrameDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/realKeyFrameDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/stringKeyFrameDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/animateSubDialogs/colourKeyFrameDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/transferFuncDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/animateFilterDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/resolutionDialog.cpp Examining data/3depict-0.0.22/src/gui/dialogs/prefDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/ExportPos.cpp Examining data/3depict-0.0.22/src/gui/dialogs/ExportRngDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/filterErrorDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/rangeEditDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/resolutionDialog.h Examining data/3depict-0.0.22/src/gui/dialogs/prefDialog.cpp Examining data/3depict-0.0.22/src/gui/mainFrame.h Examining data/3depict-0.0.22/src/gui/cropPanel.h Examining data/3depict-0.0.22/src/gui/mainFrame.cpp Examining data/3depict-0.0.22/src/gui/art.h Examining data/3depict-0.0.22/src/gui/mathglPane.h Examining data/3depict-0.0.22/src/gui/mathglPane.cpp Examining data/3depict-0.0.22/src/testing/testing.h Examining data/3depict-0.0.22/src/testing/filtertesting.cpp Examining data/3depict-0.0.22/src/testing/testing.cpp Examining data/3depict-0.0.22/src/testing/mglTesting.cpp Examining data/3depict-0.0.22/src/testing/mglTesting.h Examining data/3depict-0.0.22/src/testing/filtertesting.h Examining data/3depict-0.0.22/src/winconsole.cpp Examining data/3depict-0.0.22/src/winconsole.h Examining data/3depict-0.0.22/src/backend/configFile.cpp Examining data/3depict-0.0.22/src/backend/plot.cpp Examining data/3depict-0.0.22/src/backend/filtertree.cpp Examining data/3depict-0.0.22/src/backend/filtertree.h Examining data/3depict-0.0.22/src/backend/filter.h Examining data/3depict-0.0.22/src/backend/animator.h Examining data/3depict-0.0.22/src/backend/filtertreeAnalyse.h Examining data/3depict-0.0.22/src/backend/viscontrol.cpp Examining data/3depict-0.0.22/src/backend/filters/externalProgram.cpp Examining data/3depict-0.0.22/src/backend/filters/voxelLoad.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/spatial.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/K3DTree-mk2.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/K3DTree.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/binomial.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/mass.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/mass.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/K3DTree.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/K3DTree-mk2.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/binomial.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp Examining data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.h Examining data/3depict-0.0.22/src/backend/filters/algorithms/spatial.cpp Examining data/3depict-0.0.22/src/backend/filters/transform.h Examining data/3depict-0.0.22/src/backend/filters/ionClip.cpp Examining data/3depict-0.0.22/src/backend/filters/ionColour.h Examining data/3depict-0.0.22/src/backend/filters/filterCommon.h Examining data/3depict-0.0.22/src/backend/filters/clusterAnalysis.cpp Examining data/3depict-0.0.22/src/backend/filters/voxelise.cpp Examining data/3depict-0.0.22/src/backend/filters/geometryHelpers.cpp Examining data/3depict-0.0.22/src/backend/filters/spectrumPlot.h Examining data/3depict-0.0.22/src/backend/filters/ionColour.cpp Examining data/3depict-0.0.22/src/backend/filters/clusterAnalysis.h Examining data/3depict-0.0.22/src/backend/filters/boundingBox.h Examining data/3depict-0.0.22/src/backend/filters/allFilter.cpp Examining data/3depict-0.0.22/src/backend/filters/spatialAnalysis.cpp Examining data/3depict-0.0.22/src/backend/filters/ionDownsample.h Examining data/3depict-0.0.22/src/backend/filters/allFilter.h Examining data/3depict-0.0.22/src/backend/filters/profile.h Examining data/3depict-0.0.22/src/backend/filters/filterCommon.cpp Examining data/3depict-0.0.22/src/backend/filters/profile.cpp Examining data/3depict-0.0.22/src/backend/filters/transform.cpp Examining data/3depict-0.0.22/src/backend/filters/spatialAnalysis.h Examining data/3depict-0.0.22/src/backend/filters/boundingBox.cpp Examining data/3depict-0.0.22/src/backend/filters/ionInfo.h Examining data/3depict-0.0.22/src/backend/filters/annotation.cpp Examining data/3depict-0.0.22/src/backend/filters/voxelLoad.h Examining data/3depict-0.0.22/src/backend/filters/ionDownsample.cpp Examining data/3depict-0.0.22/src/backend/filters/ionInfo.cpp Examining data/3depict-0.0.22/src/backend/filters/dataLoad.cpp Examining data/3depict-0.0.22/src/backend/filters/spectrumPlot.cpp Examining data/3depict-0.0.22/src/backend/filters/ionClip.h Examining data/3depict-0.0.22/src/backend/filters/rangeFile.cpp Examining data/3depict-0.0.22/src/backend/filters/geometryHelpers.h Examining data/3depict-0.0.22/src/backend/filters/dataLoad.h Examining data/3depict-0.0.22/src/backend/filters/annotation.h Examining data/3depict-0.0.22/src/backend/filters/externalProgram.h Examining data/3depict-0.0.22/src/backend/filters/voxelise.h Examining data/3depict-0.0.22/src/backend/filters/rangeFile.h Examining data/3depict-0.0.22/src/backend/animator.cpp Examining data/3depict-0.0.22/src/backend/state.cpp Examining data/3depict-0.0.22/src/backend/plot.h Examining data/3depict-0.0.22/src/backend/configFile.h Examining data/3depict-0.0.22/src/backend/filtertreeAnalyse.cpp Examining data/3depict-0.0.22/src/backend/state.h Examining data/3depict-0.0.22/src/backend/viscontrol.h Examining data/3depict-0.0.22/src/backend/APT/APTFileIO.h Examining data/3depict-0.0.22/src/backend/APT/3DapReader.cpp Examining data/3depict-0.0.22/src/backend/APT/abundanceParser.cpp Examining data/3depict-0.0.22/src/backend/APT/ionhit.cpp Examining data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp Examining data/3depict-0.0.22/src/backend/APT/vtk.cpp Examining data/3depict-0.0.22/src/backend/APT/3DapReader.h Examining data/3depict-0.0.22/src/backend/APT/ionhit.h Examining data/3depict-0.0.22/src/backend/APT/APTRanges.h Examining data/3depict-0.0.22/src/backend/APT/APTRanges.cpp Examining data/3depict-0.0.22/src/backend/APT/abundanceParser.h Examining data/3depict-0.0.22/src/backend/APT/vtk.h Examining data/3depict-0.0.22/src/backend/APT/ionMapFile.h Examining data/3depict-0.0.22/src/backend/APT/ionMapFile.cpp Examining data/3depict-0.0.22/src/backend/filter.cpp Examining data/3depict-0.0.22/src/3Depict.cpp FINAL RESULTS: data/3depict-0.0.22/src/backend/filters/annotation.cpp:371:5: [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,num,formatStr.c_str(),angleVal); data/3depict-0.0.22/src/backend/filters/dataLoad.cpp:1408:2: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. system(s.c_str()); data/3depict-0.0.22/src/backend/filters/dataLoad.cpp:1492:2: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. system(s.c_str()); data/3depict-0.0.22/src/backend/filters/externalProgram.cpp:357:14: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. result=std::system(substitutedCommand.c_str()); data/3depict-0.0.22/src/backend/filters/externalProgram.cpp:762:10: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. errCode=system("echo testing... > /dev/null"); data/3depict-0.0.22/src/backend/filters/externalProgram.cpp:764:10: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. errCode=system("echo testing... > NUL"); data/3depict-0.0.22/src/common/basics.cpp:1703:9: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. result=system(command.c_str()); data/3depict-0.0.22/src/common/basics.cpp:1712:10: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. result=system(command.c_str()); data/3depict-0.0.22/src/3Depict.cpp:484: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 (time(NULL)); data/3depict-0.0.22/src/backend/filters/transform.cpp:1102:8: [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. std::srand(time(0)); data/3depict-0.0.22/src/common/colourmap.cpp:186:3: [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((int)(65000*(value-min)/(max-min))); data/3depict-0.0.22/src/common/stringFuncs.cpp:227:3: [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(time(NULL)); data/3depict-0.0.22/src/3Depict.cpp:139:17: [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). debugLogStream.open(filePath.c_str()); data/3depict-0.0.22/src/3Depict.cpp:503:2: [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 path[PATH_MAX]; data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:242:4: [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(&(buffer2[i * sizeof(float)]), &(buffer[index[i] * sizeof(float)]), sizeof(float)); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:402:4: [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(&(buffer2[i * sizeof(float)]), &(buffer[index[i] * sizeof(float)]), sizeof(float)); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:548:6: [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(&(buffer2[j * maxPosCols + i * sizeof(float)]), data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:641:8: [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). CFile.open(textFile); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:689:8: [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). CFile.open(textFile,std::ios::binary); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:808:8: [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). CFile.open(textFile); data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:589:25: [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). unsigned int RangeFile::open(const char *rangeFilename, unsigned int fileFormat) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:598:10: [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). fpRange=fopen(rangeFilename,"r"); data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:675:7: [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). if(!open(rangeFilename,assumedFileFormat)) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:690:7: [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). if(!open(rangeFilename,ui)) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1284:5: [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). f=fopen(rangeFile,"r"); data/3depict-0.0.22/src/backend/APT/APTRanges.h:157:16: [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). unsigned int open(const char *rangeFile, unsigned int format=RANGE_FORMAT_ORNL); data/3depict-0.0.22/src/backend/APT/abundanceParser.cpp:69:23: [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). size_t AbundanceData::open(const char *file, bool strict) data/3depict-0.0.22/src/backend/APT/abundanceParser.cpp:417:17: [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). TEST(massTable.open(tableFile) == 0,"load table"); data/3depict-0.0.22/src/backend/APT/abundanceParser.h:76:10: [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). size_t open(const char *file, bool strict=false); data/3depict-0.0.22/src/backend/APT/vtk.cpp:47:4: [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). f.open(filename.c_str()); data/3depict-0.0.22/src/backend/APT/vtk.h:65:4: [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). f.open(filename.c_str()); data/3depict-0.0.22/src/backend/APT/vtk.h:122:4: [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). f.open(filename.c_str()); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:637:13: [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). outSquelch=fopen("/dev/null","w"); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:639:13: [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). outSquelch=fopen("NUL","w"); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:762:13: [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). outSquelch=fopen("/dev/null","w"); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:764:13: [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). outSquelch=fopen("NUL","w"); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:848:13: [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). outSquelch=fopen("/dev/null","w"); data/3depict-0.0.22/src/backend/filters/algorithms/convexHull.cpp:850:13: [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). outSquelch=fopen("NUL","w"); data/3depict-0.0.22/src/backend/filters/algorithms/mass.cpp:27:7: [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 *BACKGROUND_MODE_STRING[FIT_MODE_ENUM_END] = {NTRANS("None"), data/3depict-0.0.22/src/backend/filters/algorithms/mass.cpp:33:8: [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 * errorMsgs[BACKGROUND_PARAMS::FIT_FAIL_END] = { data/3depict-0.0.22/src/backend/filters/algorithms/mass.h:39: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. extern const char *BACKGROUND_MODE_STRING[FIT_MODE_ENUM_END]; data/3depict-0.0.22/src/backend/filters/boundingBox.cpp:192: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 buffer[128]; data/3depict-0.0.22/src/backend/filters/filterCommon.cpp:298: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. unsigned char rgb[3]; //RGB array data/3depict-0.0.22/src/backend/filters/filterCommon.cpp:1380: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 rgb[3]; data/3depict-0.0.22/src/backend/filters/filterCommon.cpp:1519: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. unsigned char rgb[3]; data/3depict-0.0.22/src/backend/filters/ionColour.cpp:150: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. unsigned char rgb[3]; //RGB array data/3depict-0.0.22/src/backend/filters/profile.cpp:691:15: [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 c[3]; data/3depict-0.0.22/src/backend/plot.cpp:1812: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. unsigned char rgb[3]; data/3depict-0.0.22/src/common/array2D.h:40:4: [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(data,rhs.data,nWidth*nHeight*sizeof(T)); data/3depict-0.0.22/src/common/basics.cpp:1470:2: [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 inBuffer[BUFFER_SIZE]; data/3depict-0.0.22/src/common/basics.h:489: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. unsigned char data[4]; data/3depict-0.0.22/src/common/colourmap.cpp:399: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. unsigned char rgb[3]; data/3depict-0.0.22/src/common/endianTest.h:62: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 c[4]; data/3depict-0.0.22/src/common/endianTest.h:79: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 c[2]; data/3depict-0.0.22/src/common/pngread.c:28:4: [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[bytes_to_check]; data/3depict-0.0.22/src/common/pngread.c:31:15: [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). if ((*fp = fopen(file_name, "rb")) == NULL) data/3depict-0.0.22/src/common/stringFuncs.cpp:249:5: [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). f.open(s.c_str()); data/3depict-0.0.22/src/gl/drawables.cpp:2885:18: [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 rgb[3]; data/3depict-0.0.22/src/gl/drawables.cpp:3028:15: [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 rgb[3]; data/3depict-0.0.22/src/gl/drawables.h:1256: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. unsigned char v[3]; data/3depict-0.0.22/src/gl/textures.cpp:251:22: [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. if (!check_if_png((char *)fileNames[ui].c_str(), &fp, 8)) data/3depict-0.0.22/src/gui/dialogs/animateFilterDialog.cpp:83:7: [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 *extension[RANGE_FORMAT_NUM_OPTIONS] = data/3depict-0.0.22/src/gui/dialogs/animateFilterDialog.cpp:90:7: [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 * comboRange_choices[RANGE_FORMAT_NUM_OPTIONS] = data/3depict-0.0.22/src/gui/dialogs/rangeEditDialog.cpp:235:20: [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). abundanceData.open(fileLoc.c_str()); data/3depict-0.0.22/src/gui/glPane.cpp:1085: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. unsigned char clear[3]; data/3depict-0.0.22/src/gui/mainFrame.cpp:144:7: [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 * comboFilters_choices[FILTER_DROP_COUNT] = data/3depict-0.0.22/src/testing/filtertesting.cpp:192: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). fileOut.open(sClone.c_str()); data/3depict-0.0.22/src/testing/testing.cpp:457: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). manifest.open(paths[ui].c_str()); data/3depict-0.0.22/src/testing/testing.cpp:473:13: [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). manifest.open(str.c_str()); data/3depict-0.0.22/src/winconsole.cpp:35: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). m_out.open("CONOUT$"); data/3depict-0.0.22/src/winconsole.cpp:40: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). m_err.open("CONOUT$"); data/3depict-0.0.22/src/winconsole.cpp:45:8: [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). m_in.open("CONIN$"); data/3depict-0.0.22/src/wx/wxcommon.cpp:132: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 path[PATH_MAX]; data/3depict-0.0.22/src/wx/wxcommon.cpp:498:5: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf((char*)name,"%ls",pspid->ImageName.Buffer); data/3depict-0.0.22/src/wx/wxcommon.cpp:567: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. unsigned char rgbIm[3],rgbaOv[4]; data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:239:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read(buffer,BUFFERSIZE); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:391:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read(buffer,BUFFERSIZE); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:536:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read(buffer,curBufferSize); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:716:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read(buffer,bytesToRead); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:923:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read((char*)&versionByte,sizeof(unsigned int)); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:993:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read((char*)buffer,LAWATAP_ATO_RECORD_SIZE); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:1093:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read((char*)buffer,LAWATAP_ATO_RECORD_SIZE); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:1113:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read((char*)buffer,LAWATAP_ATO_RECORD_SIZE); data/3depict-0.0.22/src/backend/APT/APTFileIO.cpp:1221:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(buffer,recordSize); data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:497:10: [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). while(strlen(elementList[offset])) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:732:15: [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). while(ret && strlen(ret) < MAX_LINE_SIZE-1 && ret[0] != '-') data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:737:13: [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(!ret || strlen(ret) >= MAX_LINE_SIZE -1) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:829:13: [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(!ret || strlen(ret) >= MAX_LINE_SIZE-1) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:837:13: [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(!ret || strlen(ret) >= MAX_LINE_SIZE-1) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1359:8: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(fgetc(fpRange) == EOF) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1373:8: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(fgetc(fpRange) == EOF) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1381:7: [1] (buffer) fscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if(!fscanf(fpRange, " %255s", inBuffer)) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1391:7: [1] (buffer) fscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if(!fscanf(fpRange, " %255s", inBuffer)) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1570:7: [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). || strlen(inBuffer) >=MAX_LINE_SIZE-1) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:1831:7: [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). || strlen(inBuffer) >=MAX_LINE_SIZE-1) data/3depict-0.0.22/src/backend/APT/APTRanges.cpp:2362:8: [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). while(strlen(RANGE_EXTS[extOff])) data/3depict-0.0.22/src/backend/APT/ionMapFile.cpp:72:27: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unsigned int IonMapTable::read(const char *filename) data/3depict-0.0.22/src/backend/APT/ionMapFile.cpp:335:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). TEST(!mapTable.read("../test/ionMapExample.xml"),"ion map read"); data/3depict-0.0.22/src/backend/APT/ionMapFile.cpp:340:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mapTableB.read(s.c_str()); data/3depict-0.0.22/src/backend/APT/ionMapFile.h:51:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unsigned int read(const char *filename); data/3depict-0.0.22/src/backend/configFile.cpp:141:26: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unsigned int ConfigFile::read() data/3depict-0.0.22/src/backend/configFile.h:112:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unsigned int read(); data/3depict-0.0.22/src/backend/filters/clusterAnalysis.cpp:1254:31: [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(p->dataLabel.substr(strlen(SIZE_DIST_DATALABEL)) ==SIZE_DIST_DATALABEL ) data/3depict-0.0.22/src/backend/filters/clusterAnalysis.cpp:1351:33: [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(p->dataLabel.substr(0,strlen(CHEM_DIST_DATALABEL)) ==CHEM_DIST_DATALABEL ) data/3depict-0.0.22/src/backend/filters/ionInfo.cpp:234:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(remapTable.read(remapFilename.c_str())) data/3depict-0.0.22/src/backend/filters/profile.cpp:595:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(remapTable.read(remapFilename.c_str())) data/3depict-0.0.22/src/common/basics.h:86:6: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). c = fgetc(stream); data/3depict-0.0.22/src/common/mesh.cpp:829:14: [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(t1.begin(),t1.end(),t2.begin()); data/3depict-0.0.22/src/common/mesh.cpp:848:14: [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(ta.begin(),ta.end(),tb.begin()); data/3depict-0.0.22/src/common/mesh.cpp:1670:14: [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(std::equal(triNodes.begin(),triNodes.end(),tetFaceNodes.begin())) data/3depict-0.0.22/src/common/voxels.h:1164:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CFile.read((char *)buffer,curBufferSize); data/3depict-0.0.22/src/common/xmlHelper.cpp:75:26: [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). << data.substr( pos + strlen( refs[i] ) ) ; data/3depict-0.0.22/src/common/xmlHelper.cpp:78:36: [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). pos = data.find( refs[i], pos + strlen( refs[i] ) ) ; data/3depict-0.0.22/src/gui/mainFrame.cpp:810:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(configFile.read() == CONFIG_ERR_BADFILE) data/3depict-0.0.22/src/gui/mainFrame.cpp:2465:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). inputF.read(c,CHUNKSIZE); data/3depict-0.0.22/src/gui/mainFrame.cpp:5984:45: [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). prefixLen = stlStr(configDirPath).size() + strlen(AUTOSAVE_PREFIX) + 1; data/3depict-0.0.22/src/gui/mainFrame.cpp:5994:24: [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). ASSERT(tmp.size() >=(strlen(AUTOSAVE_PREFIX) + strlen(AUTOSAVE_SUFFIX))); data/3depict-0.0.22/src/gui/mainFrame.cpp:5994:50: [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). ASSERT(tmp.size() >=(strlen(AUTOSAVE_PREFIX) + strlen(AUTOSAVE_SUFFIX))); data/3depict-0.0.22/src/gui/mainFrame.cpp:5997: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). tmp = tmp.substr(prefixLen-1,tmp.size()-(strlen(AUTOSAVE_SUFFIX) + prefixLen-1)); data/3depict-0.0.22/src/gui/mathglPane.cpp:313:6: [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(gr->Message())) data/3depict-0.0.22/src/testing/filtertesting.cpp:150:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). configFile.read(); data/3depict-0.0.22/src/wx/wxcommon.h:43:27: [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). s2=std::string(tmp_str, strlen(tmp_str)); data/3depict-0.0.22/src/wx/wxcomponents.cpp:522:8: [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). while(strlen(dirs[ui])) data/3depict-0.0.22/src/wx/wxcomponents.cpp:568:8: [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). while(strlen(dirs[ui])) data/3depict-0.0.22/src/wx/wxcomponents.cpp:604:8: [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). while(strlen(dirs[ui])) ANALYSIS SUMMARY: Hits = 125 Lines analyzed = 110100 in approximately 1.90 seconds (57999 lines/second) Physical Source Lines of Code (SLOC) = 71981 Hits@level = [0] 7 [1] 50 [2] 63 [3] 4 [4] 8 [5] 0 Hits@level+ = [0+] 132 [1+] 125 [2+] 75 [3+] 12 [4+] 8 [5+] 0 Hits/KSLOC@level+ = [0+] 1.83382 [1+] 1.73657 [2+] 1.04194 [3+] 0.166711 [4+] 0.11114 [5+] 0 Dot directories skipped = 1 (--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.