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/libbpp-popgen-2.4.1/src/Bpp/PopGen/AlleleInfo.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/BasicAlleleInfo.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/BasicAlleleInfo.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/BiAlleleMonolocusGenotype.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/BiAlleleMonolocusGenotype.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/AnalyzedLoci.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/AnalyzedLoci.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/AnalyzedSequences.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/AnalyzedSequences.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/DataSet.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/DataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/DataSetTools.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/DataSetTools.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Date.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Date.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Group.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Group.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Individual.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Individual.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractODataSet.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractODataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Darwin/DarwinDon.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Darwin/DarwinDon.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Darwin/DarwinVarSingle.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Darwin/DarwinVarSingle.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IDataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IODataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/ODataSet.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Locality.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/MultiSeqIndividual.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/MultiSeqIndividual.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/GeneralExceptions.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/GeneralExceptions.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/LocusInfo.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/LocusInfo.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MonoAlleleMonolocusGenotype.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MonoAlleleMonolocusGenotype.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MonolocusGenotype.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MonolocusGenotypeTools.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MonolocusGenotypeTools.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultiAlleleMonolocusGenotype.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultiAlleleMonolocusGenotype.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultilocusGenotype.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultilocusGenotype.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultilocusGenotypeStatistics.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/MultilocusGenotypeStatistics.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismMultiGContainer.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismMultiGContainer.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismMultiGContainerTools.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismMultiGContainerTools.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainer.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainer.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainerTools.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainerTools.h Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/SequenceStatistics.cpp Examining data/libbpp-popgen-2.4.1/src/Bpp/PopGen/SequenceStatistics.h FINAL RESULTS: data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:52:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void AbstractIDataSet::read(const std::string& path, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:55:3: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(input, data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:59:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* AbstractIDataSet::read(std::istream& is) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:62:3: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(is, *data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:66:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* AbstractIDataSet::read(const std::string& path) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.cpp:69:3: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(path, *data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.h:67:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(std::istream& is, DataSet& data_set) = 0; data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.h:69:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(const std::string& path, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.h:71:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual DataSet* read(std::istream& is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/AbstractIDataSet.h:73:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual DataSet* read(const std::string& path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:61:27: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void GeneMapperCsvExport::read(std::istream& is, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:69:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataTable* dtp = DataTable::read(is, "\t", true, -1); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:185:27: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void GeneMapperCsvExport::read(const std::string& path, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:187:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). AbstractIDataSet::read(path, data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:190:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* GeneMapperCsvExport::read(std::istream& is) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:192:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:195:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* GeneMapperCsvExport::read(const std::string& path) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.cpp:197:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.h:99:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(std::istream& is, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.h:100:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(const std::string& path, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.h:101:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(std::istream& is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/GeneMapper/GeneMapperCsvExport.h:102:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(const std::string& path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:49:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void Genepop::read(istream& is, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:194:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void Genepop::read(const string& path, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:196:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). AbstractIDataSet::read(path, data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:199:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* Genepop::read(istream& is) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:201:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:204:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* Genepop::read(const string& path) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.cpp:206:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.h:72:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(std::istream& is, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.h:73:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(const std::string& path, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.h:74:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(std::istream& is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genepop/Genepop.h:75:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(const std::string& path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:50:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void Genetix::read(istream& is, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:121:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void Genetix::read(const string& path, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:123:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). AbstractIDataSet::read(path, data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:126:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* Genetix::read(istream& is) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:128:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:131:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* Genetix::read(const string& path) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.cpp:133:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.h:73:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(std::istream& is, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.h:74:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(const std::string& path, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.h:75:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(std::istream& is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/Genetix/Genetix.h:76:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(const std::string& path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IDataSet.h:65:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(std::istream& is, DataSet& data_set) = 0; data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IDataSet.h:70:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(const std::string& path, DataSet& data_set) = 0; data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IDataSet.h:75:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual DataSet* read(std::istream& is) = 0; data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/IDataSet.h:80:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual DataSet* read(const std::string& path) = 0; data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:134:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void PopgenlibIO::read(std::istream& is, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:530:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void PopgenlibIO::read(const std::string& path, DataSet& data_set) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:532:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). AbstractIDataSet::read(path, data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:535:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* PopgenlibIO::read(std::istream& is) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:537:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:540:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* PopgenlibIO::read(const std::string& path) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.cpp:542:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return AbstractIDataSet::read(path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.h:151:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(std::istream& is, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.h:152:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(const std::string& path, DataSet& data_set); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.h:153:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(std::istream& is); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/DataSet/Io/PopgenlibIO.h:154:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). DataSet* read(const std::string& path); data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainerTools.cpp:52:68: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). PolymorphismSequenceContainer* PolymorphismSequenceContainerTools::read(const std::string& path, const Alphabet* alpha) data/libbpp-popgen-2.4.1/src/Bpp/PopGen/PolymorphismSequenceContainerTools.h:89:41: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). static PolymorphismSequenceContainer* read(const std::string& path, const Alphabet* alpha); ANALYSIS SUMMARY: Hits = 61 Lines analyzed = 18506 in approximately 0.61 seconds (30218 lines/second) Physical Source Lines of Code (SLOC) = 9673 Hits@level = [0] 0 [1] 61 [2] 0 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 61 [1+] 61 [2+] 0 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 6.30621 [1+] 6.30621 [2+] 0 [3+] 0 [4+] 0 [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.