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.