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/mothur-1.44.3/TestMothur/catch.hpp
Examining data/mothur-1.44.3/TestMothur/dataset.cpp
Examining data/mothur-1.44.3/TestMothur/dataset.h
Examining data/mothur-1.44.3/TestMothur/distcdataset.cpp
Examining data/mothur-1.44.3/TestMothur/distcdataset.h
Examining data/mothur-1.44.3/TestMothur/distpdataset.cpp
Examining data/mothur-1.44.3/TestMothur/distpdataset.h
Examining data/mothur-1.44.3/TestMothur/fakes/fakemcc.hpp
Examining data/mothur-1.44.3/TestMothur/fakes/fakeoligos.h
Examining data/mothur-1.44.3/TestMothur/fakes/fakeoptimatrix.cpp
Examining data/mothur-1.44.3/TestMothur/fakes/fakeoptimatrix.hpp
Examining data/mothur-1.44.3/TestMothur/fastqdataset.cpp
Examining data/mothur-1.44.3/TestMothur/fastqdataset.h
Examining data/mothur-1.44.3/TestMothur/main.cpp
Examining data/mothur-1.44.3/TestMothur/testbiominfocommand.cpp
Examining data/mothur-1.44.3/TestMothur/testbiominfocommand.h
Examining data/mothur-1.44.3/TestMothur/testclassifier/testphylotree.cpp
Examining data/mothur-1.44.3/TestMothur/testclassifier/testphylotree.hpp
Examining data/mothur-1.44.3/TestMothur/testclustercalcs.cpp
Examining data/mothur-1.44.3/TestMothur/testclustercalcs.hpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testgetgroupscommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testgetgroupscommand.h
Examining data/mothur-1.44.3/TestMothur/testcommands/testmergegroupscommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testmergegroupscommand.h
Examining data/mothur-1.44.3/TestMothur/testcommands/testremovegroupscommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testremovegroupscommand.h
Examining data/mothur-1.44.3/TestMothur/testcommands/testrenamefilecommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testrenamefilecommand.h
Examining data/mothur-1.44.3/TestMothur/testcommands/testrenameseqscommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcommands/testrenameseqscommand.h
Examining data/mothur-1.44.3/TestMothur/testcommands/testsetseedcommand.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testOligos.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testOligos.hpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testcounttable.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testcounttable.hpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.h
Examining data/mothur-1.44.3/TestMothur/testcontainers/testoptimatrix.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testoptimatrix.h
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsequence.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsequence.h
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundfloatvector.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundfloatvector.hpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundfloatvectors.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundfloatvectors.hpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundvector.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundvector.hpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundvectors.cpp
Examining data/mothur-1.44.3/TestMothur/testcontainers/testsharedrabundvectors.hpp
Examining data/mothur-1.44.3/TestMothur/testopticluster.cpp
Examining data/mothur-1.44.3/TestMothur/testopticluster.h
Examining data/mothur-1.44.3/TestMothur/testoptirefmatrix.cpp
Examining data/mothur-1.44.3/TestMothur/testoptirefmatrix.hpp
Examining data/mothur-1.44.3/TestMothur/testsubsample.cpp
Examining data/mothur-1.44.3/TestMothur/testsubsample.hpp
Examining data/mothur-1.44.3/TestMothur/testtrimoligos.cpp
Examining data/mothur-1.44.3/TestMothur/testtrimoligos.hpp
Examining data/mothur-1.44.3/TestMothur/testvsearchfileparser.cpp
Examining data/mothur-1.44.3/TestMothur/testvsearchfileparser.h
Examining data/mothur-1.44.3/source/averagelinkage.cpp
Examining data/mothur-1.44.3/source/calcsparcc.cpp
Examining data/mothur-1.44.3/source/calcsparcc.h
Examining data/mothur-1.44.3/source/calculators/accuracy.cpp
Examining data/mothur-1.44.3/source/calculators/accuracy.hpp
Examining data/mothur-1.44.3/source/calculators/ace.cpp
Examining data/mothur-1.44.3/source/calculators/ace.h
Examining data/mothur-1.44.3/source/calculators/bergerparker.cpp
Examining data/mothur-1.44.3/source/calculators/bergerparker.h
Examining data/mothur-1.44.3/source/calculators/boneh.cpp
Examining data/mothur-1.44.3/source/calculators/boneh.h
Examining data/mothur-1.44.3/source/calculators/bootstrap.cpp
Examining data/mothur-1.44.3/source/calculators/bootstrap.h
Examining data/mothur-1.44.3/source/calculators/bstick.cpp
Examining data/mothur-1.44.3/source/calculators/bstick.h
Examining data/mothur-1.44.3/source/calculators/calculator.cpp
Examining data/mothur-1.44.3/source/calculators/calculator.h
Examining data/mothur-1.44.3/source/calculators/canberra.cpp
Examining data/mothur-1.44.3/source/calculators/canberra.h
Examining data/mothur-1.44.3/source/calculators/chao1.cpp
Examining data/mothur-1.44.3/source/calculators/chao1.h
Examining data/mothur-1.44.3/source/calculators/coverage.cpp
Examining data/mothur-1.44.3/source/calculators/coverage.h
Examining data/mothur-1.44.3/source/calculators/dayhoff.h
Examining data/mothur-1.44.3/source/calculators/diversitycalc.h
Examining data/mothur-1.44.3/source/calculators/diversityutils.cpp
Examining data/mothur-1.44.3/source/calculators/diversityutils.hpp
Examining data/mothur-1.44.3/source/calculators/eachgapdist.cpp
Examining data/mothur-1.44.3/source/calculators/eachgapdist.h
Examining data/mothur-1.44.3/source/calculators/eachgapignore.cpp
Examining data/mothur-1.44.3/source/calculators/eachgapignore.h
Examining data/mothur-1.44.3/source/calculators/efron.cpp
Examining data/mothur-1.44.3/source/calculators/efron.h
Examining data/mothur-1.44.3/source/calculators/erarefaction.cpp
Examining data/mothur-1.44.3/source/calculators/erarefaction.hpp
Examining data/mothur-1.44.3/source/calculators/f1score.cpp
Examining data/mothur-1.44.3/source/calculators/f1score.hpp
Examining data/mothur-1.44.3/source/calculators/fdr.cpp
Examining data/mothur-1.44.3/source/calculators/fdr.hpp
Examining data/mothur-1.44.3/source/calculators/filters.h
Examining data/mothur-1.44.3/source/calculators/fn.cpp
Examining data/mothur-1.44.3/source/calculators/fn.hpp
Examining data/mothur-1.44.3/source/calculators/fp.cpp
Examining data/mothur-1.44.3/source/calculators/fp.hpp
Examining data/mothur-1.44.3/source/calculators/fpfn.cpp
Examining data/mothur-1.44.3/source/calculators/fpfn.hpp
Examining data/mothur-1.44.3/source/calculators/geom.cpp
Examining data/mothur-1.44.3/source/calculators/geom.h
Examining data/mothur-1.44.3/source/calculators/goodscoverage.cpp
Examining data/mothur-1.44.3/source/calculators/goodscoverage.h
Examining data/mothur-1.44.3/source/calculators/gower.cpp
Examining data/mothur-1.44.3/source/calculators/gower.h
Examining data/mothur-1.44.3/source/calculators/hamming.cpp
Examining data/mothur-1.44.3/source/calculators/hamming.h
Examining data/mothur-1.44.3/source/calculators/heip.cpp
Examining data/mothur-1.44.3/source/calculators/heip.h
Examining data/mothur-1.44.3/source/calculators/hellinger.cpp
Examining data/mothur-1.44.3/source/calculators/hellinger.h
Examining data/mothur-1.44.3/source/calculators/igabundance.cpp
Examining data/mothur-1.44.3/source/calculators/igabundance.hpp
Examining data/mothur-1.44.3/source/calculators/ignoregaps.cpp
Examining data/mothur-1.44.3/source/calculators/ignoregaps.h
Examining data/mothur-1.44.3/source/calculators/igrarefaction.cpp
Examining data/mothur-1.44.3/source/calculators/igrarefaction.hpp
Examining data/mothur-1.44.3/source/calculators/invsimpson.cpp
Examining data/mothur-1.44.3/source/calculators/invsimpson.h
Examining data/mothur-1.44.3/source/calculators/jackknife.cpp
Examining data/mothur-1.44.3/source/calculators/jackknife.h
Examining data/mothur-1.44.3/source/calculators/lnabundance.cpp
Examining data/mothur-1.44.3/source/calculators/lnabundance.hpp
Examining data/mothur-1.44.3/source/calculators/lnrarefaction.cpp
Examining data/mothur-1.44.3/source/calculators/lnrarefaction.hpp
Examining data/mothur-1.44.3/source/calculators/lnshift.cpp
Examining data/mothur-1.44.3/source/calculators/lnshift.hpp
Examining data/mothur-1.44.3/source/calculators/logsd.cpp
Examining data/mothur-1.44.3/source/calculators/logsd.h
Examining data/mothur-1.44.3/source/calculators/lsabundance.cpp
Examining data/mothur-1.44.3/source/calculators/lsabundance.hpp
Examining data/mothur-1.44.3/source/calculators/lsrarefaction.cpp
Examining data/mothur-1.44.3/source/calculators/lsrarefaction.hpp
Examining data/mothur-1.44.3/source/calculators/manhattan.cpp
Examining data/mothur-1.44.3/source/calculators/manhattan.h
Examining data/mothur-1.44.3/source/calculators/mcc.cpp
Examining data/mothur-1.44.3/source/calculators/mcc.hpp
Examining data/mothur-1.44.3/source/calculators/memchi2.cpp
Examining data/mothur-1.44.3/source/calculators/memchi2.h
Examining data/mothur-1.44.3/source/calculators/memchord.cpp
Examining data/mothur-1.44.3/source/calculators/memchord.h
Examining data/mothur-1.44.3/source/calculators/memeuclidean.cpp
Examining data/mothur-1.44.3/source/calculators/memeuclidean.h
Examining data/mothur-1.44.3/source/calculators/mempearson.cpp
Examining data/mothur-1.44.3/source/calculators/mempearson.h
Examining data/mothur-1.44.3/source/calculators/metroig.cpp
Examining data/mothur-1.44.3/source/calculators/metroig.hpp
Examining data/mothur-1.44.3/source/calculators/metrolognormal.cpp
Examining data/mothur-1.44.3/source/calculators/metrolognormal.hpp
Examining data/mothur-1.44.3/source/calculators/metrologstudent.cpp
Examining data/mothur-1.44.3/source/calculators/metrologstudent.hpp
Examining data/mothur-1.44.3/source/calculators/metrosichel.cpp
Examining data/mothur-1.44.3/source/calculators/metrosichel.hpp
Examining data/mothur-1.44.3/source/calculators/npshannon.cpp
Examining data/mothur-1.44.3/source/calculators/npshannon.h
Examining data/mothur-1.44.3/source/calculators/npv.cpp
Examining data/mothur-1.44.3/source/calculators/npv.hpp
Examining data/mothur-1.44.3/source/calculators/nseqs.h
Examining data/mothur-1.44.3/source/calculators/odum.cpp
Examining data/mothur-1.44.3/source/calculators/odum.h
Examining data/mothur-1.44.3/source/calculators/onegapdist.cpp
Examining data/mothur-1.44.3/source/calculators/onegapdist.h
Examining data/mothur-1.44.3/source/calculators/onegapignore.cpp
Examining data/mothur-1.44.3/source/calculators/onegapignore.h
Examining data/mothur-1.44.3/source/calculators/parsimony.cpp
Examining data/mothur-1.44.3/source/calculators/parsimony.h
Examining data/mothur-1.44.3/source/calculators/ppv.cpp
Examining data/mothur-1.44.3/source/calculators/ppv.hpp
Examining data/mothur-1.44.3/source/calculators/prng.cpp
Examining data/mothur-1.44.3/source/calculators/prng.h
Examining data/mothur-1.44.3/source/calculators/qstat.cpp
Examining data/mothur-1.44.3/source/calculators/qstat.h
Examining data/mothur-1.44.3/source/calculators/sensitivity.cpp
Examining data/mothur-1.44.3/source/calculators/sensitivity.hpp
Examining data/mothur-1.44.3/source/calculators/shannon.cpp
Examining data/mothur-1.44.3/source/calculators/shannon.h
Examining data/mothur-1.44.3/source/calculators/shannoneven.cpp
Examining data/mothur-1.44.3/source/calculators/shannoneven.h
Examining data/mothur-1.44.3/source/calculators/shannonrange.cpp
Examining data/mothur-1.44.3/source/calculators/shannonrange.h
Examining data/mothur-1.44.3/source/calculators/sharedace.cpp
Examining data/mothur-1.44.3/source/calculators/sharedace.h
Examining data/mothur-1.44.3/source/calculators/sharedanderbergs.cpp
Examining data/mothur-1.44.3/source/calculators/sharedanderbergs.h
Examining data/mothur-1.44.3/source/calculators/sharedbraycurtis.cpp
Examining data/mothur-1.44.3/source/calculators/sharedbraycurtis.h
Examining data/mothur-1.44.3/source/calculators/sharedchao1.cpp
Examining data/mothur-1.44.3/source/calculators/sharedchao1.h
Examining data/mothur-1.44.3/source/calculators/sharedjabund.cpp
Examining data/mothur-1.44.3/source/calculators/sharedjabund.h
Examining data/mothur-1.44.3/source/calculators/sharedjackknife.cpp
Examining data/mothur-1.44.3/source/calculators/sharedjackknife.h
Examining data/mothur-1.44.3/source/calculators/sharedjclass.cpp
Examining data/mothur-1.44.3/source/calculators/sharedjclass.h
Examining data/mothur-1.44.3/source/calculators/sharedjest.cpp
Examining data/mothur-1.44.3/source/calculators/sharedjest.h
Examining data/mothur-1.44.3/source/calculators/sharedjsd.cpp
Examining data/mothur-1.44.3/source/calculators/sharedjsd.h
Examining data/mothur-1.44.3/source/calculators/sharedkstest.cpp
Examining data/mothur-1.44.3/source/calculators/sharedkstest.h
Examining data/mothur-1.44.3/source/calculators/sharedkulczynski.cpp
Examining data/mothur-1.44.3/source/calculators/sharedkulczynski.h
Examining data/mothur-1.44.3/source/calculators/sharedkulczynskicody.cpp
Examining data/mothur-1.44.3/source/calculators/sharedkulczynskicody.h
Examining data/mothur-1.44.3/source/calculators/sharedlennon.cpp
Examining data/mothur-1.44.3/source/calculators/sharedlennon.h
Examining data/mothur-1.44.3/source/calculators/sharedmarczewski.cpp
Examining data/mothur-1.44.3/source/calculators/sharedmarczewski.h
Examining data/mothur-1.44.3/source/calculators/sharedmorisitahorn.cpp
Examining data/mothur-1.44.3/source/calculators/sharedmorisitahorn.h
Examining data/mothur-1.44.3/source/calculators/sharednseqs.h
Examining data/mothur-1.44.3/source/calculators/sharedochiai.cpp
Examining data/mothur-1.44.3/source/calculators/sharedochiai.h
Examining data/mothur-1.44.3/source/calculators/sharedrjsd.cpp
Examining data/mothur-1.44.3/source/calculators/sharedrjsd.h
Examining data/mothur-1.44.3/source/calculators/sharedsobs.cpp
Examining data/mothur-1.44.3/source/calculators/sharedsobs.h
Examining data/mothur-1.44.3/source/calculators/sharedsobscollectsummary.cpp
Examining data/mothur-1.44.3/source/calculators/sharedsobscollectsummary.h
Examining data/mothur-1.44.3/source/calculators/sharedsorabund.cpp
Examining data/mothur-1.44.3/source/calculators/sharedsorabund.h
Examining data/mothur-1.44.3/source/calculators/sharedsorclass.cpp
Examining data/mothur-1.44.3/source/calculators/sharedsorclass.h
Examining data/mothur-1.44.3/source/calculators/sharedsorest.cpp
Examining data/mothur-1.44.3/source/calculators/sharedsorest.h
Examining data/mothur-1.44.3/source/calculators/sharedthetan.cpp
Examining data/mothur-1.44.3/source/calculators/sharedthetan.h
Examining data/mothur-1.44.3/source/calculators/sharedthetayc.cpp
Examining data/mothur-1.44.3/source/calculators/sharedthetayc.h
Examining data/mothur-1.44.3/source/calculators/shen.cpp
Examining data/mothur-1.44.3/source/calculators/shen.h
Examining data/mothur-1.44.3/source/calculators/siabundance.cpp
Examining data/mothur-1.44.3/source/calculators/siabundance.hpp
Examining data/mothur-1.44.3/source/calculators/simpson.cpp
Examining data/mothur-1.44.3/source/calculators/simpson.h
Examining data/mothur-1.44.3/source/calculators/simpsoneven.cpp
Examining data/mothur-1.44.3/source/calculators/simpsoneven.h
Examining data/mothur-1.44.3/source/calculators/sirarefaction.cpp
Examining data/mothur-1.44.3/source/calculators/sirarefaction.hpp
Examining data/mothur-1.44.3/source/calculators/sishift.cpp
Examining data/mothur-1.44.3/source/calculators/sishift.hpp
Examining data/mothur-1.44.3/source/calculators/smithwilson.cpp
Examining data/mothur-1.44.3/source/calculators/smithwilson.h
Examining data/mothur-1.44.3/source/calculators/sobs.h
Examining data/mothur-1.44.3/source/calculators/soergel.cpp
Examining data/mothur-1.44.3/source/calculators/soergel.h
Examining data/mothur-1.44.3/source/calculators/solow.cpp
Examining data/mothur-1.44.3/source/calculators/solow.h
Examining data/mothur-1.44.3/source/calculators/spearman.cpp
Examining data/mothur-1.44.3/source/calculators/spearman.h
Examining data/mothur-1.44.3/source/calculators/speciesprofile.cpp
Examining data/mothur-1.44.3/source/calculators/speciesprofile.h
Examining data/mothur-1.44.3/source/calculators/specificity.cpp
Examining data/mothur-1.44.3/source/calculators/specificity.hpp
Examining data/mothur-1.44.3/source/calculators/structchi2.cpp
Examining data/mothur-1.44.3/source/calculators/structchi2.h
Examining data/mothur-1.44.3/source/calculators/structchord.cpp
Examining data/mothur-1.44.3/source/calculators/structchord.h
Examining data/mothur-1.44.3/source/calculators/structeuclidean.cpp
Examining data/mothur-1.44.3/source/calculators/structeuclidean.h
Examining data/mothur-1.44.3/source/calculators/structkulczynski.cpp
Examining data/mothur-1.44.3/source/calculators/structkulczynski.h
Examining data/mothur-1.44.3/source/calculators/structpearson.cpp
Examining data/mothur-1.44.3/source/calculators/structpearson.h
Examining data/mothur-1.44.3/source/calculators/tn.cpp
Examining data/mothur-1.44.3/source/calculators/tn.hpp
Examining data/mothur-1.44.3/source/calculators/tp.cpp
Examining data/mothur-1.44.3/source/calculators/tp.hpp
Examining data/mothur-1.44.3/source/calculators/tptn.cpp
Examining data/mothur-1.44.3/source/calculators/tptn.hpp
Examining data/mothur-1.44.3/source/calculators/treecalculator.h
Examining data/mothur-1.44.3/source/calculators/unweighted.cpp
Examining data/mothur-1.44.3/source/calculators/unweighted.h
Examining data/mothur-1.44.3/source/calculators/uvest.cpp
Examining data/mothur-1.44.3/source/calculators/uvest.h
Examining data/mothur-1.44.3/source/calculators/weighted.cpp
Examining data/mothur-1.44.3/source/calculators/weighted.h
Examining data/mothur-1.44.3/source/calculators/whittaker.cpp
Examining data/mothur-1.44.3/source/calculators/whittaker.h
Examining data/mothur-1.44.3/source/checked.h
Examining data/mothur-1.44.3/source/chimera/bellerophon.cpp
Examining data/mothur-1.44.3/source/chimera/bellerophon.h
Examining data/mothur-1.44.3/source/chimera/ccode.cpp
Examining data/mothur-1.44.3/source/chimera/ccode.h
Examining data/mothur-1.44.3/source/chimera/chimeracheckrdp.cpp
Examining data/mothur-1.44.3/source/chimera/chimeracheckrdp.h
Examining data/mothur-1.44.3/source/chimera/chimerarealigner.cpp
Examining data/mothur-1.44.3/source/chimera/chimerarealigner.h
Examining data/mothur-1.44.3/source/chimera/chimeraslayer.cpp
Examining data/mothur-1.44.3/source/chimera/chimeraslayer.h
Examining data/mothur-1.44.3/source/chimera/decalc.cpp
Examining data/mothur-1.44.3/source/chimera/decalc.h
Examining data/mothur-1.44.3/source/chimera/maligner.cpp
Examining data/mothur-1.44.3/source/chimera/maligner.h
Examining data/mothur-1.44.3/source/chimera/mothurchimera.cpp
Examining data/mothur-1.44.3/source/chimera/mothurchimera.h
Examining data/mothur-1.44.3/source/chimera/myPerseus.cpp
Examining data/mothur-1.44.3/source/chimera/myPerseus.h
Examining data/mothur-1.44.3/source/chimera/pintail.cpp
Examining data/mothur-1.44.3/source/chimera/pintail.h
Examining data/mothur-1.44.3/source/chimera/slayer.cpp
Examining data/mothur-1.44.3/source/chimera/slayer.h
Examining data/mothur-1.44.3/source/classifier/alignnode.cpp
Examining data/mothur-1.44.3/source/classifier/alignnode.h
Examining data/mothur-1.44.3/source/classifier/aligntree.cpp
Examining data/mothur-1.44.3/source/classifier/aligntree.h
Examining data/mothur-1.44.3/source/classifier/bayesian.cpp
Examining data/mothur-1.44.3/source/classifier/bayesian.h
Examining data/mothur-1.44.3/source/classifier/classify.cpp
Examining data/mothur-1.44.3/source/classifier/classify.h
Examining data/mothur-1.44.3/source/classifier/kmernode.cpp
Examining data/mothur-1.44.3/source/classifier/kmernode.h
Examining data/mothur-1.44.3/source/classifier/kmertree.cpp
Examining data/mothur-1.44.3/source/classifier/kmertree.h
Examining data/mothur-1.44.3/source/classifier/knn.cpp
Examining data/mothur-1.44.3/source/classifier/knn.h
Examining data/mothur-1.44.3/source/classifier/opticlassifier.cpp
Examining data/mothur-1.44.3/source/classifier/opticlassifier.hpp
Examining data/mothur-1.44.3/source/classifier/phylosummary.cpp
Examining data/mothur-1.44.3/source/classifier/phylosummary.h
Examining data/mothur-1.44.3/source/classifier/phylotree.cpp
Examining data/mothur-1.44.3/source/classifier/phylotree.h
Examining data/mothur-1.44.3/source/classifier/taxonomyequalizer.cpp
Examining data/mothur-1.44.3/source/classifier/taxonomyequalizer.h
Examining data/mothur-1.44.3/source/classifier/taxonomynode.cpp
Examining data/mothur-1.44.3/source/classifier/taxonomynode.h
Examining data/mothur-1.44.3/source/clearcut/clearcut.cpp
Examining data/mothur-1.44.3/source/clearcut/clearcut.h
Examining data/mothur-1.44.3/source/clearcut/cmdargs.cpp
Examining data/mothur-1.44.3/source/clearcut/cmdargs.h
Examining data/mothur-1.44.3/source/clearcut/common.h
Examining data/mothur-1.44.3/source/clearcut/distclearcut.cpp
Examining data/mothur-1.44.3/source/clearcut/distclearcut.h
Examining data/mothur-1.44.3/source/clearcut/dmat.cpp
Examining data/mothur-1.44.3/source/clearcut/dmat.h
Examining data/mothur-1.44.3/source/clearcut/fasta.cpp
Examining data/mothur-1.44.3/source/clearcut/fasta.h
Examining data/mothur-1.44.3/source/clearcut/getopt_long.cpp
Examining data/mothur-1.44.3/source/clearcut/getopt_long.h
Examining data/mothur-1.44.3/source/cluster.cpp
Examining data/mothur-1.44.3/source/cluster.hpp
Examining data/mothur-1.44.3/source/clusterclassic.cpp
Examining data/mothur-1.44.3/source/clusterclassic.h
Examining data/mothur-1.44.3/source/collect.cpp
Examining data/mothur-1.44.3/source/collect.h
Examining data/mothur-1.44.3/source/collectdisplay.h
Examining data/mothur-1.44.3/source/collectorscurvedata.h
Examining data/mothur-1.44.3/source/commandfactory.cpp
Examining data/mothur-1.44.3/source/commandfactory.hpp
Examining data/mothur-1.44.3/source/commandoptionparser.cpp
Examining data/mothur-1.44.3/source/commandoptionparser.hpp
Examining data/mothur-1.44.3/source/commandparameter.h
Examining data/mothur-1.44.3/source/commands/aligncheckcommand.cpp
Examining data/mothur-1.44.3/source/commands/aligncheckcommand.h
Examining data/mothur-1.44.3/source/commands/aligncommand.cpp
Examining data/mothur-1.44.3/source/commands/aligncommand.h
Examining data/mothur-1.44.3/source/commands/amovacommand.cpp
Examining data/mothur-1.44.3/source/commands/amovacommand.h
Examining data/mothur-1.44.3/source/commands/anosimcommand.cpp
Examining data/mothur-1.44.3/source/commands/anosimcommand.h
Examining data/mothur-1.44.3/source/commands/binsequencecommand.cpp
Examining data/mothur-1.44.3/source/commands/binsequencecommand.h
Examining data/mothur-1.44.3/source/commands/biominfocommand.cpp
Examining data/mothur-1.44.3/source/commands/biominfocommand.h
Examining data/mothur-1.44.3/source/commands/chimerabellerophoncommand.cpp
Examining data/mothur-1.44.3/source/commands/chimerabellerophoncommand.h
Examining data/mothur-1.44.3/source/commands/chimeraccodecommand.cpp
Examining data/mothur-1.44.3/source/commands/chimeraccodecommand.h
Examining data/mothur-1.44.3/source/commands/chimeracheckcommand.cpp
Examining data/mothur-1.44.3/source/commands/chimeracheckcommand.h
Examining data/mothur-1.44.3/source/commands/chimeraperseuscommand.cpp
Examining data/mothur-1.44.3/source/commands/chimeraperseuscommand.h
Examining data/mothur-1.44.3/source/commands/chimerapintailcommand.cpp
Examining data/mothur-1.44.3/source/commands/chimerapintailcommand.h
Examining data/mothur-1.44.3/source/commands/chimeraslayercommand.cpp
Examining data/mothur-1.44.3/source/commands/chimeraslayercommand.h
Examining data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp
Examining data/mothur-1.44.3/source/commands/chimerauchimecommand.h
Examining data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp
Examining data/mothur-1.44.3/source/commands/chimeravsearchcommand.h
Examining data/mothur-1.44.3/source/commands/chopseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/chopseqscommand.h
Examining data/mothur-1.44.3/source/commands/classifyotucommand.cpp
Examining data/mothur-1.44.3/source/commands/classifyotucommand.h
Examining data/mothur-1.44.3/source/commands/classifyseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/classifyseqscommand.h
Examining data/mothur-1.44.3/source/commands/classifysvmsharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/classifysvmsharedcommand.h
Examining data/mothur-1.44.3/source/commands/classifytreecommand.cpp
Examining data/mothur-1.44.3/source/commands/classifytreecommand.h
Examining data/mothur-1.44.3/source/commands/clearcutcommand.cpp
Examining data/mothur-1.44.3/source/commands/clearcutcommand.h
Examining data/mothur-1.44.3/source/commands/clustercommand.cpp
Examining data/mothur-1.44.3/source/commands/clustercommand.h
Examining data/mothur-1.44.3/source/commands/clusterdoturcommand.cpp
Examining data/mothur-1.44.3/source/commands/clusterdoturcommand.h
Examining data/mothur-1.44.3/source/commands/clusterfitcommand.cpp
Examining data/mothur-1.44.3/source/commands/clusterfitcommand.hpp
Examining data/mothur-1.44.3/source/commands/clusterfragmentscommand.cpp
Examining data/mothur-1.44.3/source/commands/clusterfragmentscommand.h
Examining data/mothur-1.44.3/source/commands/clustersplitcommand.cpp
Examining data/mothur-1.44.3/source/commands/clustersplitcommand.h
Examining data/mothur-1.44.3/source/commands/collectcommand.cpp
Examining data/mothur-1.44.3/source/commands/collectcommand.h
Examining data/mothur-1.44.3/source/commands/collectsharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/collectsharedcommand.h
Examining data/mothur-1.44.3/source/commands/command.hpp
Examining data/mothur-1.44.3/source/commands/consensusseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/consensusseqscommand.h
Examining data/mothur-1.44.3/source/commands/cooccurrencecommand.cpp
Examining data/mothur-1.44.3/source/commands/cooccurrencecommand.h
Examining data/mothur-1.44.3/source/commands/corraxescommand.cpp
Examining data/mothur-1.44.3/source/commands/corraxescommand.h
Examining data/mothur-1.44.3/source/commands/countgroupscommand.cpp
Examining data/mothur-1.44.3/source/commands/countgroupscommand.h
Examining data/mothur-1.44.3/source/commands/countseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/countseqscommand.h
Examining data/mothur-1.44.3/source/commands/createdatabasecommand.cpp
Examining data/mothur-1.44.3/source/commands/createdatabasecommand.h
Examining data/mothur-1.44.3/source/commands/deconvolutecommand.cpp
Examining data/mothur-1.44.3/source/commands/deconvolutecommand.h
Examining data/mothur-1.44.3/source/commands/degapseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/degapseqscommand.h
Examining data/mothur-1.44.3/source/commands/deuniqueseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/deuniqueseqscommand.h
Examining data/mothur-1.44.3/source/commands/deuniquetreecommand.cpp
Examining data/mothur-1.44.3/source/commands/deuniquetreecommand.h
Examining data/mothur-1.44.3/source/commands/distancecommand.cpp
Examining data/mothur-1.44.3/source/commands/distancecommand.h
Examining data/mothur-1.44.3/source/commands/distsharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/distsharedcommand.h
Examining data/mothur-1.44.3/source/commands/diversityestimatorcommand.cpp
Examining data/mothur-1.44.3/source/commands/diversityestimatorcommand.hpp
Examining data/mothur-1.44.3/source/commands/filterseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/filterseqscommand.h
Examining data/mothur-1.44.3/source/commands/filtersharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/filtersharedcommand.h
Examining data/mothur-1.44.3/source/commands/getcoremicrobiomecommand.cpp
Examining data/mothur-1.44.3/source/commands/getcoremicrobiomecommand.h
Examining data/mothur-1.44.3/source/commands/getcurrentcommand.cpp
Examining data/mothur-1.44.3/source/commands/getcurrentcommand.h
Examining data/mothur-1.44.3/source/commands/getdistscommand.cpp
Examining data/mothur-1.44.3/source/commands/getdistscommand.h
Examining data/mothur-1.44.3/source/commands/getgroupcommand.cpp
Examining data/mothur-1.44.3/source/commands/getgroupcommand.h
Examining data/mothur-1.44.3/source/commands/getgroupscommand.cpp
Examining data/mothur-1.44.3/source/commands/getgroupscommand.h
Examining data/mothur-1.44.3/source/commands/getlabelcommand.cpp
Examining data/mothur-1.44.3/source/commands/getlabelcommand.h
Examining data/mothur-1.44.3/source/commands/getlineagecommand.cpp
Examining data/mothur-1.44.3/source/commands/getlineagecommand.h
Examining data/mothur-1.44.3/source/commands/getlistcountcommand.cpp
Examining data/mothur-1.44.3/source/commands/getlistcountcommand.h
Examining data/mothur-1.44.3/source/commands/getmetacommunitycommand.cpp
Examining data/mothur-1.44.3/source/commands/getmetacommunitycommand.h
Examining data/mothur-1.44.3/source/commands/getmimarkspackagecommand.cpp
Examining data/mothur-1.44.3/source/commands/getmimarkspackagecommand.h
Examining data/mothur-1.44.3/source/commands/getoturepcommand.cpp
Examining data/mothur-1.44.3/source/commands/getoturepcommand.h
Examining data/mothur-1.44.3/source/commands/getotuscommand.cpp
Examining data/mothur-1.44.3/source/commands/getotuscommand.h
Examining data/mothur-1.44.3/source/commands/getrabundcommand.cpp
Examining data/mothur-1.44.3/source/commands/getrabundcommand.h
Examining data/mothur-1.44.3/source/commands/getrelabundcommand.cpp
Examining data/mothur-1.44.3/source/commands/getrelabundcommand.h
Examining data/mothur-1.44.3/source/commands/getsabundcommand.cpp
Examining data/mothur-1.44.3/source/commands/getsabundcommand.h
Examining data/mothur-1.44.3/source/commands/getseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/getseqscommand.h
Examining data/mothur-1.44.3/source/commands/getsharedotucommand.cpp
Examining data/mothur-1.44.3/source/commands/getsharedotucommand.h
Examining data/mothur-1.44.3/source/commands/heatmapcommand.cpp
Examining data/mothur-1.44.3/source/commands/heatmapcommand.h
Examining data/mothur-1.44.3/source/commands/heatmapsimcommand.cpp
Examining data/mothur-1.44.3/source/commands/heatmapsimcommand.h
Examining data/mothur-1.44.3/source/commands/helpcommand.cpp
Examining data/mothur-1.44.3/source/commands/helpcommand.h
Examining data/mothur-1.44.3/source/commands/homovacommand.cpp
Examining data/mothur-1.44.3/source/commands/homovacommand.h
Examining data/mothur-1.44.3/source/commands/indicatorcommand.cpp
Examining data/mothur-1.44.3/source/commands/indicatorcommand.h
Examining data/mothur-1.44.3/source/commands/kruskalwalliscommand.cpp
Examining data/mothur-1.44.3/source/commands/kruskalwalliscommand.h
Examining data/mothur-1.44.3/source/commands/lefsecommand.cpp
Examining data/mothur-1.44.3/source/commands/lefsecommand.h
Examining data/mothur-1.44.3/source/commands/libshuffcommand.cpp
Examining data/mothur-1.44.3/source/commands/libshuffcommand.h
Examining data/mothur-1.44.3/source/commands/listotuscommand.cpp
Examining data/mothur-1.44.3/source/commands/listotuscommand.h
Examining data/mothur-1.44.3/source/commands/listseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/listseqscommand.h
Examining data/mothur-1.44.3/source/commands/makebiomcommand.cpp
Examining data/mothur-1.44.3/source/commands/makebiomcommand.h
Examining data/mothur-1.44.3/source/commands/makeclrcommand.cpp
Examining data/mothur-1.44.3/source/commands/makeclrcommand.hpp
Examining data/mothur-1.44.3/source/commands/makecontigscommand.cpp
Examining data/mothur-1.44.3/source/commands/makecontigscommand.h
Examining data/mothur-1.44.3/source/commands/makefastqcommand.cpp
Examining data/mothur-1.44.3/source/commands/makefastqcommand.h
Examining data/mothur-1.44.3/source/commands/makefilecommand.cpp
Examining data/mothur-1.44.3/source/commands/makefilecommand.h
Examining data/mothur-1.44.3/source/commands/makegroupcommand.cpp
Examining data/mothur-1.44.3/source/commands/makegroupcommand.h
Examining data/mothur-1.44.3/source/commands/makelefsecommand.cpp
Examining data/mothur-1.44.3/source/commands/makelefsecommand.h
Examining data/mothur-1.44.3/source/commands/makelookupcommand.cpp
Examining data/mothur-1.44.3/source/commands/makelookupcommand.h
Examining data/mothur-1.44.3/source/commands/makesharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/makesharedcommand.h
Examining data/mothur-1.44.3/source/commands/mantelcommand.cpp
Examining data/mothur-1.44.3/source/commands/mantelcommand.h
Examining data/mothur-1.44.3/source/commands/mergecountcommand.cpp
Examining data/mothur-1.44.3/source/commands/mergecountcommand.hpp
Examining data/mothur-1.44.3/source/commands/mergefilecommand.cpp
Examining data/mothur-1.44.3/source/commands/mergefilecommand.h
Examining data/mothur-1.44.3/source/commands/mergegroupscommand.cpp
Examining data/mothur-1.44.3/source/commands/mergegroupscommand.h
Examining data/mothur-1.44.3/source/commands/mergeotuscommand.cpp
Examining data/mothur-1.44.3/source/commands/mergeotuscommand.hpp
Examining data/mothur-1.44.3/source/commands/mergesfffilecommand.cpp
Examining data/mothur-1.44.3/source/commands/mergesfffilecommand.h
Examining data/mothur-1.44.3/source/commands/mergetaxsummarycommand.cpp
Examining data/mothur-1.44.3/source/commands/mergetaxsummarycommand.h
Examining data/mothur-1.44.3/source/commands/metastatscommand.cpp
Examining data/mothur-1.44.3/source/commands/metastatscommand.h
Examining data/mothur-1.44.3/source/commands/mgclustercommand.cpp
Examining data/mothur-1.44.3/source/commands/mgclustercommand.h
Examining data/mothur-1.44.3/source/commands/mimarksattributescommand.cpp
Examining data/mothur-1.44.3/source/commands/mimarksattributescommand.h
Examining data/mothur-1.44.3/source/commands/newcommandtemplate.cpp
Examining data/mothur-1.44.3/source/commands/newcommandtemplate.h
Examining data/mothur-1.44.3/source/commands/nmdscommand.cpp
Examining data/mothur-1.44.3/source/commands/nmdscommand.h
Examining data/mothur-1.44.3/source/commands/nocommands.cpp
Examining data/mothur-1.44.3/source/commands/nocommands.h
Examining data/mothur-1.44.3/source/commands/normalizesharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/normalizesharedcommand.h
Examining data/mothur-1.44.3/source/commands/otuassociationcommand.cpp
Examining data/mothur-1.44.3/source/commands/otuassociationcommand.h
Examining data/mothur-1.44.3/source/commands/otuhierarchycommand.cpp
Examining data/mothur-1.44.3/source/commands/otuhierarchycommand.h
Examining data/mothur-1.44.3/source/commands/pairwiseseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/pairwiseseqscommand.h
Examining data/mothur-1.44.3/source/commands/parsefastaqcommand.cpp
Examining data/mothur-1.44.3/source/commands/parsefastaqcommand.h
Examining data/mothur-1.44.3/source/commands/parsimonycommand.cpp
Examining data/mothur-1.44.3/source/commands/parsimonycommand.h
Examining data/mothur-1.44.3/source/commands/pcacommand.cpp
Examining data/mothur-1.44.3/source/commands/pcacommand.h
Examining data/mothur-1.44.3/source/commands/pcoacommand.cpp
Examining data/mothur-1.44.3/source/commands/pcoacommand.h
Examining data/mothur-1.44.3/source/commands/pcrseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/pcrseqscommand.h
Examining data/mothur-1.44.3/source/commands/phylodiversitycommand.cpp
Examining data/mothur-1.44.3/source/commands/phylodiversitycommand.h
Examining data/mothur-1.44.3/source/commands/phylotypecommand.cpp
Examining data/mothur-1.44.3/source/commands/phylotypecommand.h
Examining data/mothur-1.44.3/source/commands/preclustercommand.cpp
Examining data/mothur-1.44.3/source/commands/preclustercommand.h
Examining data/mothur-1.44.3/source/commands/primerdesigncommand.cpp
Examining data/mothur-1.44.3/source/commands/primerdesigncommand.h
Examining data/mothur-1.44.3/source/commands/quitcommand.cpp
Examining data/mothur-1.44.3/source/commands/quitcommand.h
Examining data/mothur-1.44.3/source/commands/rarefactcommand.cpp
Examining data/mothur-1.44.3/source/commands/rarefactcommand.h
Examining data/mothur-1.44.3/source/commands/rarefactsharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/rarefactsharedcommand.h
Examining data/mothur-1.44.3/source/commands/removedistscommand.cpp
Examining data/mothur-1.44.3/source/commands/removedistscommand.h
Examining data/mothur-1.44.3/source/commands/removegroupscommand.cpp
Examining data/mothur-1.44.3/source/commands/removegroupscommand.h
Examining data/mothur-1.44.3/source/commands/removelineagecommand.cpp
Examining data/mothur-1.44.3/source/commands/removelineagecommand.h
Examining data/mothur-1.44.3/source/commands/removeotuscommand.cpp
Examining data/mothur-1.44.3/source/commands/removeotuscommand.h
Examining data/mothur-1.44.3/source/commands/removerarecommand.cpp
Examining data/mothur-1.44.3/source/commands/removerarecommand.h
Examining data/mothur-1.44.3/source/commands/removeseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/removeseqscommand.h
Examining data/mothur-1.44.3/source/commands/renamefilecommand.cpp
Examining data/mothur-1.44.3/source/commands/renamefilecommand.h
Examining data/mothur-1.44.3/source/commands/renameseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/renameseqscommand.h
Examining data/mothur-1.44.3/source/commands/reversecommand.cpp
Examining data/mothur-1.44.3/source/commands/reversecommand.h
Examining data/mothur-1.44.3/source/commands/screenseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/screenseqscommand.h
Examining data/mothur-1.44.3/source/commands/sensspeccommand.cpp
Examining data/mothur-1.44.3/source/commands/sensspeccommand.h
Examining data/mothur-1.44.3/source/commands/seqerrorcommand.cpp
Examining data/mothur-1.44.3/source/commands/seqerrorcommand.h
Examining data/mothur-1.44.3/source/commands/seqsummarycommand.cpp
Examining data/mothur-1.44.3/source/commands/seqsummarycommand.h
Examining data/mothur-1.44.3/source/commands/setcurrentcommand.cpp
Examining data/mothur-1.44.3/source/commands/setcurrentcommand.h
Examining data/mothur-1.44.3/source/commands/setdircommand.cpp
Examining data/mothur-1.44.3/source/commands/setdircommand.h
Examining data/mothur-1.44.3/source/commands/setlogfilecommand.cpp
Examining data/mothur-1.44.3/source/commands/setlogfilecommand.h
Examining data/mothur-1.44.3/source/commands/setseedcommand.cpp
Examining data/mothur-1.44.3/source/commands/setseedcommand.h
Examining data/mothur-1.44.3/source/commands/sffinfocommand.cpp
Examining data/mothur-1.44.3/source/commands/sffinfocommand.h
Examining data/mothur-1.44.3/source/commands/sffmultiplecommand.cpp
Examining data/mothur-1.44.3/source/commands/sffmultiplecommand.h
Examining data/mothur-1.44.3/source/commands/shhhercommand.cpp
Examining data/mothur-1.44.3/source/commands/shhhercommand.h
Examining data/mothur-1.44.3/source/commands/shhhseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/shhhseqscommand.h
Examining data/mothur-1.44.3/source/commands/sortseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/sortseqscommand.h
Examining data/mothur-1.44.3/source/commands/sparcccommand.cpp
Examining data/mothur-1.44.3/source/commands/sparcccommand.h
Examining data/mothur-1.44.3/source/commands/splitabundcommand.cpp
Examining data/mothur-1.44.3/source/commands/splitabundcommand.h
Examining data/mothur-1.44.3/source/commands/splitgroupscommand.cpp
Examining data/mothur-1.44.3/source/commands/splitgroupscommand.h
Examining data/mothur-1.44.3/source/commands/sracommand.cpp
Examining data/mothur-1.44.3/source/commands/sracommand.h
Examining data/mothur-1.44.3/source/commands/srainfocommand.cpp
Examining data/mothur-1.44.3/source/commands/srainfocommand.hpp
Examining data/mothur-1.44.3/source/commands/subsamplecommand.cpp
Examining data/mothur-1.44.3/source/commands/subsamplecommand.h
Examining data/mothur-1.44.3/source/commands/summarycommand.cpp
Examining data/mothur-1.44.3/source/commands/summarycommand.h
Examining data/mothur-1.44.3/source/commands/summaryqualcommand.cpp
Examining data/mothur-1.44.3/source/commands/summaryqualcommand.h
Examining data/mothur-1.44.3/source/commands/summarysharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/summarysharedcommand.h
Examining data/mothur-1.44.3/source/commands/summarytaxcommand.cpp
Examining data/mothur-1.44.3/source/commands/summarytaxcommand.h
Examining data/mothur-1.44.3/source/commands/systemcommand.cpp
Examining data/mothur-1.44.3/source/commands/systemcommand.h
Examining data/mothur-1.44.3/source/commands/treesharedcommand.cpp
Examining data/mothur-1.44.3/source/commands/treesharedcommand.h
Examining data/mothur-1.44.3/source/commands/trimflowscommand.cpp
Examining data/mothur-1.44.3/source/commands/trimflowscommand.h
Examining data/mothur-1.44.3/source/commands/trimseqscommand.cpp
Examining data/mothur-1.44.3/source/commands/trimseqscommand.h
Examining data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp
Examining data/mothur-1.44.3/source/commands/unifracunweightedcommand.h
Examining data/mothur-1.44.3/source/commands/unifracweightedcommand.cpp
Examining data/mothur-1.44.3/source/commands/unifracweightedcommand.h
Examining data/mothur-1.44.3/source/commands/venncommand.cpp
Examining data/mothur-1.44.3/source/commands/venncommand.h
Examining data/mothur-1.44.3/source/communitytype/communitytype.cpp
Examining data/mothur-1.44.3/source/communitytype/communitytype.h
Examining data/mothur-1.44.3/source/communitytype/kmeans.cpp
Examining data/mothur-1.44.3/source/communitytype/kmeans.h
Examining data/mothur-1.44.3/source/communitytype/pam.cpp
Examining data/mothur-1.44.3/source/communitytype/pam.h
Examining data/mothur-1.44.3/source/communitytype/qFinderDMM.cpp
Examining data/mothur-1.44.3/source/communitytype/qFinderDMM.h
Examining data/mothur-1.44.3/source/completelinkage.cpp
Examining data/mothur-1.44.3/source/consensus.cpp
Examining data/mothur-1.44.3/source/consensus.h
Examining data/mothur-1.44.3/source/core.h
Examining data/mothur-1.44.3/source/currentfile.cpp
Examining data/mothur-1.44.3/source/currentfile.h
Examining data/mothur-1.44.3/source/datastructures/alignment.cpp
Examining data/mothur-1.44.3/source/datastructures/alignment.hpp
Examining data/mothur-1.44.3/source/datastructures/alignmentcell.cpp
Examining data/mothur-1.44.3/source/datastructures/alignmentcell.hpp
Examining data/mothur-1.44.3/source/datastructures/alignmentdb.cpp
Examining data/mothur-1.44.3/source/datastructures/alignmentdb.h
Examining data/mothur-1.44.3/source/datastructures/blastalign.cpp
Examining data/mothur-1.44.3/source/datastructures/blastalign.hpp
Examining data/mothur-1.44.3/source/datastructures/blastdb.cpp
Examining data/mothur-1.44.3/source/datastructures/blastdb.hpp
Examining data/mothur-1.44.3/source/datastructures/compare.h
Examining data/mothur-1.44.3/source/datastructures/counttable.cpp
Examining data/mothur-1.44.3/source/datastructures/counttable.h
Examining data/mothur-1.44.3/source/datastructures/database.hpp
Examining data/mothur-1.44.3/source/datastructures/datavector.hpp
Examining data/mothur-1.44.3/source/datastructures/designmap.cpp
Examining data/mothur-1.44.3/source/datastructures/designmap.h
Examining data/mothur-1.44.3/source/datastructures/distancedb.cpp
Examining data/mothur-1.44.3/source/datastructures/distancedb.hpp
Examining data/mothur-1.44.3/source/datastructures/fastamap.cpp
Examining data/mothur-1.44.3/source/datastructures/fastamap.h
Examining data/mothur-1.44.3/source/datastructures/fastqread.cpp
Examining data/mothur-1.44.3/source/datastructures/fastqread.h
Examining data/mothur-1.44.3/source/datastructures/filefile.cpp
Examining data/mothur-1.44.3/source/datastructures/filefile.hpp
Examining data/mothur-1.44.3/source/datastructures/flowdata.cpp
Examining data/mothur-1.44.3/source/datastructures/flowdata.h
Examining data/mothur-1.44.3/source/datastructures/fullmatrix.cpp
Examining data/mothur-1.44.3/source/datastructures/fullmatrix.h
Examining data/mothur-1.44.3/source/datastructures/groupmap.cpp
Examining data/mothur-1.44.3/source/datastructures/groupmap.h
Examining data/mothur-1.44.3/source/datastructures/kmer.cpp
Examining data/mothur-1.44.3/source/datastructures/kmer.hpp
Examining data/mothur-1.44.3/source/datastructures/kmeralign.cpp
Examining data/mothur-1.44.3/source/datastructures/kmeralign.h
Examining data/mothur-1.44.3/source/datastructures/kmerdb.cpp
Examining data/mothur-1.44.3/source/datastructures/kmerdb.hpp
Examining data/mothur-1.44.3/source/datastructures/listvector.cpp
Examining data/mothur-1.44.3/source/datastructures/listvector.hpp
Examining data/mothur-1.44.3/source/datastructures/nameassignment.cpp
Examining data/mothur-1.44.3/source/datastructures/nameassignment.hpp
Examining data/mothur-1.44.3/source/datastructures/oligos.cpp
Examining data/mothur-1.44.3/source/datastructures/oligos.h
Examining data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp
Examining data/mothur-1.44.3/source/datastructures/optiblastmatrix.hpp
Examining data/mothur-1.44.3/source/datastructures/optidata.cpp
Examining data/mothur-1.44.3/source/datastructures/optidata.hpp
Examining data/mothur-1.44.3/source/datastructures/optidb.cpp
Examining data/mothur-1.44.3/source/datastructures/optidb.hpp
Examining data/mothur-1.44.3/source/datastructures/optimatrix.cpp
Examining data/mothur-1.44.3/source/datastructures/optimatrix.h
Examining data/mothur-1.44.3/source/datastructures/optirefmatrix.cpp
Examining data/mothur-1.44.3/source/datastructures/optirefmatrix.hpp
Examining data/mothur-1.44.3/source/datastructures/ordervector.cpp
Examining data/mothur-1.44.3/source/datastructures/ordervector.hpp
Examining data/mothur-1.44.3/source/datastructures/qualityscores.cpp
Examining data/mothur-1.44.3/source/datastructures/qualityscores.h
Examining data/mothur-1.44.3/source/datastructures/rabundfloatvector.cpp
Examining data/mothur-1.44.3/source/datastructures/rabundfloatvector.hpp
Examining data/mothur-1.44.3/source/datastructures/rabundvector.cpp
Examining data/mothur-1.44.3/source/datastructures/rabundvector.hpp
Examining data/mothur-1.44.3/source/datastructures/reportfile.cpp
Examining data/mothur-1.44.3/source/datastructures/reportfile.h
Examining data/mothur-1.44.3/source/datastructures/sabundvector.cpp
Examining data/mothur-1.44.3/source/datastructures/sabundvector.hpp
Examining data/mothur-1.44.3/source/datastructures/sequence.cpp
Examining data/mothur-1.44.3/source/datastructures/sequence.hpp
Examining data/mothur-1.44.3/source/datastructures/sequencecountparser.cpp
Examining data/mothur-1.44.3/source/datastructures/sequencecountparser.h
Examining data/mothur-1.44.3/source/datastructures/sequencedb.cpp
Examining data/mothur-1.44.3/source/datastructures/sequencedb.h
Examining data/mothur-1.44.3/source/datastructures/sequenceparser.cpp
Examining data/mothur-1.44.3/source/datastructures/sequenceparser.h
Examining data/mothur-1.44.3/source/datastructures/sffheader.cpp
Examining data/mothur-1.44.3/source/datastructures/sffheader.hpp
Examining data/mothur-1.44.3/source/datastructures/sffread.cpp
Examining data/mothur-1.44.3/source/datastructures/sffread.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedclrvector.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedclrvector.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedclrvectors.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedclrvectors.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedlistvector.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedlistvector.h
Examining data/mothur-1.44.3/source/datastructures/sharedordervector.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedordervector.h
Examining data/mothur-1.44.3/source/datastructures/sharedrabundfloatvector.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundfloatvector.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundfloatvectors.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundfloatvectors.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundvector.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundvector.hpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundvectors.cpp
Examining data/mothur-1.44.3/source/datastructures/sharedrabundvectors.hpp
Examining data/mothur-1.44.3/source/datastructures/sparsedistancematrix.cpp
Examining data/mothur-1.44.3/source/datastructures/sparsedistancematrix.h
Examining data/mothur-1.44.3/source/datastructures/sparsematrix.cpp
Examining data/mothur-1.44.3/source/datastructures/sparsematrix.hpp
Examining data/mothur-1.44.3/source/datastructures/suffixdb.cpp
Examining data/mothur-1.44.3/source/datastructures/suffixdb.hpp
Examining data/mothur-1.44.3/source/datastructures/suffixnodes.cpp
Examining data/mothur-1.44.3/source/datastructures/suffixnodes.hpp
Examining data/mothur-1.44.3/source/datastructures/suffixtree.cpp
Examining data/mothur-1.44.3/source/datastructures/suffixtree.hpp
Examining data/mothur-1.44.3/source/datastructures/taxonomy.cpp
Examining data/mothur-1.44.3/source/datastructures/taxonomy.hpp
Examining data/mothur-1.44.3/source/datastructures/tree.cpp
Examining data/mothur-1.44.3/source/datastructures/tree.h
Examining data/mothur-1.44.3/source/datastructures/treemap.cpp
Examining data/mothur-1.44.3/source/datastructures/treemap.h
Examining data/mothur-1.44.3/source/datastructures/treenode.cpp
Examining data/mothur-1.44.3/source/datastructures/treenode.h
Examining data/mothur-1.44.3/source/display.h
Examining data/mothur-1.44.3/source/dlibshuff.cpp
Examining data/mothur-1.44.3/source/dlibshuff.h
Examining data/mothur-1.44.3/source/endiannessmacros.h
Examining data/mothur-1.44.3/source/engines/batchengine.cpp
Examining data/mothur-1.44.3/source/engines/batchengine.hpp
Examining data/mothur-1.44.3/source/engines/engine.hpp
Examining data/mothur-1.44.3/source/engines/interactengine.cpp
Examining data/mothur-1.44.3/source/engines/interactengine.hpp
Examining data/mothur-1.44.3/source/engines/scriptengine.cpp
Examining data/mothur-1.44.3/source/engines/scriptengine.hpp
Examining data/mothur-1.44.3/source/fileoutput.cpp
Examining data/mothur-1.44.3/source/fileoutput.h
Examining data/mothur-1.44.3/source/gotohoverlap.cpp
Examining data/mothur-1.44.3/source/gotohoverlap.hpp
Examining data/mothur-1.44.3/source/heatmap.cpp
Examining data/mothur-1.44.3/source/heatmap.h
Examining data/mothur-1.44.3/source/heatmapsim.cpp
Examining data/mothur-1.44.3/source/heatmapsim.h
Examining data/mothur-1.44.3/source/inputdata.cpp
Examining data/mothur-1.44.3/source/inputdata.h
Examining data/mothur-1.44.3/source/libshuff.cpp
Examining data/mothur-1.44.3/source/libshuff.h
Examining data/mothur-1.44.3/source/linearalgebra.cpp
Examining data/mothur-1.44.3/source/linearalgebra.h
Examining data/mothur-1.44.3/source/metastats/mothurfisher.cpp
Examining data/mothur-1.44.3/source/metastats/mothurfisher.h
Examining data/mothur-1.44.3/source/metastats/mothurmetastats.cpp
Examining data/mothur-1.44.3/source/metastats/mothurmetastats.h
Examining data/mothur-1.44.3/source/mothur.cpp
Examining data/mothur-1.44.3/source/mothur.h
Examining data/mothur-1.44.3/source/mothurout.cpp
Examining data/mothur-1.44.3/source/mothurout.h
Examining data/mothur-1.44.3/source/myseqdist.cpp
Examining data/mothur-1.44.3/source/myseqdist.h
Examining data/mothur-1.44.3/source/nast.cpp
Examining data/mothur-1.44.3/source/nast.hpp
Examining data/mothur-1.44.3/source/nastreport.cpp
Examining data/mothur-1.44.3/source/nastreport.hpp
Examining data/mothur-1.44.3/source/needlemanoverlap.cpp
Examining data/mothur-1.44.3/source/needlemanoverlap.hpp
Examining data/mothur-1.44.3/source/noalign.cpp
Examining data/mothur-1.44.3/source/noalign.hpp
Examining data/mothur-1.44.3/source/observable.h
Examining data/mothur-1.44.3/source/opticluster.cpp
Examining data/mothur-1.44.3/source/opticluster.h
Examining data/mothur-1.44.3/source/optifitcluster.cpp
Examining data/mothur-1.44.3/source/optifitcluster.hpp
Examining data/mothur-1.44.3/source/optionparser.cpp
Examining data/mothur-1.44.3/source/optionparser.h
Examining data/mothur-1.44.3/source/overlap.cpp
Examining data/mothur-1.44.3/source/overlap.hpp
Examining data/mothur-1.44.3/source/raredisplay.cpp
Examining data/mothur-1.44.3/source/raredisplay.h
Examining data/mothur-1.44.3/source/rarefact.cpp
Examining data/mothur-1.44.3/source/rarefact.h
Examining data/mothur-1.44.3/source/rarefactioncurvedata.h
Examining data/mothur-1.44.3/source/read/readblast.cpp
Examining data/mothur-1.44.3/source/read/readblast.h
Examining data/mothur-1.44.3/source/read/readcluster.cpp
Examining data/mothur-1.44.3/source/read/readcluster.h
Examining data/mothur-1.44.3/source/read/readcolumn.cpp
Examining data/mothur-1.44.3/source/read/readcolumn.h
Examining data/mothur-1.44.3/source/read/readmatrix.hpp
Examining data/mothur-1.44.3/source/read/readphylip.cpp
Examining data/mothur-1.44.3/source/read/readphylip.h
Examining data/mothur-1.44.3/source/read/readphylipvector.cpp
Examining data/mothur-1.44.3/source/read/readphylipvector.h
Examining data/mothur-1.44.3/source/read/readtree.cpp
Examining data/mothur-1.44.3/source/read/readtree.h
Examining data/mothur-1.44.3/source/read/splitmatrix.cpp
Examining data/mothur-1.44.3/source/read/splitmatrix.h
Examining data/mothur-1.44.3/source/read/treereader.cpp
Examining data/mothur-1.44.3/source/read/treereader.h
Examining data/mothur-1.44.3/source/refchimeratest.cpp
Examining data/mothur-1.44.3/source/refchimeratest.h
Examining data/mothur-1.44.3/source/sensspeccalc.cpp
Examining data/mothur-1.44.3/source/sensspeccalc.hpp
Examining data/mothur-1.44.3/source/seqnoise.cpp
Examining data/mothur-1.44.3/source/seqnoise.h
Examining data/mothur-1.44.3/source/sharedwriter.hpp
Examining data/mothur-1.44.3/source/singlelinkage.cpp
Examining data/mothur-1.44.3/source/slibshuff.cpp
Examining data/mothur-1.44.3/source/slibshuff.h
Examining data/mothur-1.44.3/source/subsample.cpp
Examining data/mothur-1.44.3/source/subsample.h
Examining data/mothur-1.44.3/source/summary.cpp
Examining data/mothur-1.44.3/source/summary.hpp
Examining data/mothur-1.44.3/source/svm/svm.cpp
Examining data/mothur-1.44.3/source/svm/svm.hpp
Examining data/mothur-1.44.3/source/trialSwap2.cpp
Examining data/mothur-1.44.3/source/trialswap2.h
Examining data/mothur-1.44.3/source/trimoligos.cpp
Examining data/mothur-1.44.3/source/trimoligos.h
Examining data/mothur-1.44.3/source/uchime_src/addtargets2.cpp
Examining data/mothur-1.44.3/source/uchime_src/alignchime.cpp
Examining data/mothur-1.44.3/source/uchime_src/alignchimel.cpp
Examining data/mothur-1.44.3/source/uchime_src/allocs.h
Examining data/mothur-1.44.3/source/uchime_src/alnheuristics.h
Examining data/mothur-1.44.3/source/uchime_src/alnparams.cpp
Examining data/mothur-1.44.3/source/uchime_src/alnparams.h
Examining data/mothur-1.44.3/source/uchime_src/alpha.cpp
Examining data/mothur-1.44.3/source/uchime_src/alpha.h
Examining data/mothur-1.44.3/source/uchime_src/alpha2.cpp
Examining data/mothur-1.44.3/source/uchime_src/chainer.h
Examining data/mothur-1.44.3/source/uchime_src/chime.h
Examining data/mothur-1.44.3/source/uchime_src/counters.h
Examining data/mothur-1.44.3/source/uchime_src/diagbox.h
Examining data/mothur-1.44.3/source/uchime_src/dp.h
Examining data/mothur-1.44.3/source/uchime_src/evalue.h
Examining data/mothur-1.44.3/source/uchime_src/fractid.cpp
Examining data/mothur-1.44.3/source/uchime_src/getparents.cpp
Examining data/mothur-1.44.3/source/uchime_src/globalalign2.cpp
Examining data/mothur-1.44.3/source/uchime_src/help.h
Examining data/mothur-1.44.3/source/uchime_src/hsp.h
Examining data/mothur-1.44.3/source/uchime_src/hspfinder.h
Examining data/mothur-1.44.3/source/uchime_src/make3way.cpp
Examining data/mothur-1.44.3/source/uchime_src/mx.cpp
Examining data/mothur-1.44.3/source/uchime_src/mx.h
Examining data/mothur-1.44.3/source/uchime_src/myopts.h
Examining data/mothur-1.44.3/source/uchime_src/myutils.cpp
Examining data/mothur-1.44.3/source/uchime_src/myutils.h
Examining data/mothur-1.44.3/source/uchime_src/orf.h
Examining data/mothur-1.44.3/source/uchime_src/out.h
Examining data/mothur-1.44.3/source/uchime_src/path.cpp
Examining data/mothur-1.44.3/source/uchime_src/path.h
Examining data/mothur-1.44.3/source/uchime_src/searchchime.cpp
Examining data/mothur-1.44.3/source/uchime_src/seq.h
Examining data/mothur-1.44.3/source/uchime_src/seqdb.cpp
Examining data/mothur-1.44.3/source/uchime_src/seqdb.h
Examining data/mothur-1.44.3/source/uchime_src/setnucmx.cpp
Examining data/mothur-1.44.3/source/uchime_src/sfasta.cpp
Examining data/mothur-1.44.3/source/uchime_src/sfasta.h
Examining data/mothur-1.44.3/source/uchime_src/svnmods.h
Examining data/mothur-1.44.3/source/uchime_src/svnversion.h
Examining data/mothur-1.44.3/source/uchime_src/timers.h
Examining data/mothur-1.44.3/source/uchime_src/timing.h
Examining data/mothur-1.44.3/source/uchime_src/tracebackbit.cpp
Examining data/mothur-1.44.3/source/uchime_src/uc.h
Examining data/mothur-1.44.3/source/uchime_src/uchime_main.cpp
Examining data/mothur-1.44.3/source/uchime_src/ultra.h
Examining data/mothur-1.44.3/source/uchime_src/usort.cpp
Examining data/mothur-1.44.3/source/uchime_src/viterbifast.cpp
Examining data/mothur-1.44.3/source/uchime_src/windex.h
Examining data/mothur-1.44.3/source/uchime_src/writechhit.cpp
Examining data/mothur-1.44.3/source/unchecked.h
Examining data/mothur-1.44.3/source/utf8.h
Examining data/mothur-1.44.3/source/utils.cpp
Examining data/mothur-1.44.3/source/utils.hpp
Examining data/mothur-1.44.3/source/validcalculator.cpp
Examining data/mothur-1.44.3/source/validcalculator.h
Examining data/mothur-1.44.3/source/validparameter.cpp
Examining data/mothur-1.44.3/source/validparameter.h
Examining data/mothur-1.44.3/source/venn.cpp
Examining data/mothur-1.44.3/source/venn.h
Examining data/mothur-1.44.3/source/vsearchfileparser.cpp
Examining data/mothur-1.44.3/source/vsearchfileparser.h
Examining data/mothur-1.44.3/source/weightedlinkage.cpp
Examining data/mothur-1.44.3/source/wilcox.cpp
Examining data/mothur-1.44.3/source/wilcox.h
Examining data/mothur-1.44.3/source/writer.h

FINAL RESULTS:

data/mothur-1.44.3/source/clearcut/clearcut.cpp:1986: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(dest->taxaname[i], src->taxaname[i]);
data/mothur-1.44.3/source/clearcut/dmat.cpp:540:7:  [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(dmat->taxaname[row], token->buf); 
data/mothur-1.44.3/source/clearcut/fasta.cpp:468:2:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
	sscanf(ptr, "%s", alignment->titles[seq]);  /* get the first word and use as the title */
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:607: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.
        system(commandString.c_str());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:480: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.
        system(commandString.c_str());
data/mothur-1.44.3/source/commands/clustercommand.cpp:557: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.
        system(commandString.c_str());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1188: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.
        system(commandString.c_str());
data/mothur-1.44.3/source/commands/distancecommand.cpp:332:4:  [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(("gzip -v " + outputFile).c_str());
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:500:13:  [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(unzipCommand.c_str());
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:502:13:  [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(unzipCommand.c_str());
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:520:25:  [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(unzipCommand.c_str());
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:526:25:  [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(unzipCommand.c_str());
data/mothur-1.44.3/source/commands/makefilecommand.cpp:353: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.
        system(findCommand.c_str());
data/mothur-1.44.3/source/commands/makefilecommand.cpp:360: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.
        system(findCommand.c_str());
data/mothur-1.44.3/source/commands/pairwiseseqscommand.cpp:268:13:  [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(("gzip -v " + outputFile).c_str());
data/mothur-1.44.3/source/commands/systemcommand.cpp:99:3:  [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(command.c_str());
data/mothur-1.44.3/source/datastructures/blastalign.cpp:65: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(blastCommand.c_str());	//	Here we assume that "bl2seq" is in the users path or in the same folder as
data/mothur-1.44.3/source/datastructures/blastdb.cpp:164:3:  [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(blastCommand.c_str());
data/mothur-1.44.3/source/datastructures/blastdb.cpp:227:3:  [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(blastCommand.c_str());
data/mothur-1.44.3/source/datastructures/blastdb.cpp:294:3:  [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(formatdbCommand.c_str());								//	to get the right sequence names, i think. -p F
data/mothur-1.44.3/source/uchime_src/myutils.cpp:518:2:  [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.
	vsnprintf(szStr, MAX_FORMATTED_STRING_LENGTH-1, Format, ArgList);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:555:2:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	vfprintf(g_fLog, Format, ArgList);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:582:3:  [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.
		fprintf(stderr, (i == 0) ? "%s" : " %s", g_Argv[i].c_str());
data/mothur-1.44.3/source/uchime_src/path.cpp:128:2:  [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(Front, rhs.Front);
data/mothur-1.44.3/source/uchime_src/path.cpp:137:2:  [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(Front, PathStr);
data/mothur-1.44.3/source/uchime_src/uchime_main.cpp:28:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf(
data/mothur-1.44.3/source/utils.cpp:771:13:  [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(versionTestCommand.c_str());
data/mothur-1.44.3/source/utils.cpp:1319: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.
        system(command.c_str());
data/mothur-1.44.3/source/utils.cpp:1346: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.
        system(command.c_str());
data/mothur-1.44.3/source/utils.cpp:1935: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.
        system(makeDirectoryCommand.c_str());
data/mothur-1.44.3/source/utils.cpp:2054:13:  [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("clear");
data/mothur-1.44.3/source/utils.cpp:2056:13:  [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("CLS");
data/mothur-1.44.3/TestMothur/catch.hpp:7923:18:  [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( config.rngSeed() );
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:136:9:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
    c = getopt_long(argc,
data/mothur-1.44.3/source/clearcut/getopt_long.cpp:272:1:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
getopt_long(int argc, char **argv,
data/mothur-1.44.3/source/clearcut/getopt_long.cpp:495:9:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
    c = getopt_long(argc, argv, shortopts, longopts, indexptr);
data/mothur-1.44.3/source/clearcut/getopt_long.h:51:5:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
int getopt_long(int argc, char **argv,
data/mothur-1.44.3/source/commandfactory.cpp:386:36:  [3] (random) random:
  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.
            bool seed = false; int random;
data/mothur-1.44.3/source/commandfactory.cpp:391:87:  [3] (random) random:
  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.
                if (util.isNumeric1(intputOption)) { util.mothurConvert(intputOption, random); seed=true; }
data/mothur-1.44.3/source/commandfactory.cpp:395:76:  [3] (random) random:
  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.
            if (seed)  { m->mothurOut("Setting random seed to " + toString(random) + ".\n\n"); m->setRandomSeed(random); }
data/mothur-1.44.3/source/commandfactory.cpp:395:113:  [3] (random) random:
  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.
            if (seed)  { m->mothurOut("Setting random seed to " + toString(random) + ".\n\n"); m->setRandomSeed(random); }
data/mothur-1.44.3/source/commands/setdircommand.cpp:114:70:  [3] (random) random:
  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.
                if (util.isInteger(temp)) { util.mothurConvert(temp, random); seed = true; }
data/mothur-1.44.3/source/commands/setdircommand.cpp:120:34:  [3] (random) random:
  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.
                m->setRandomSeed(random);
data/mothur-1.44.3/source/commands/setdircommand.cpp:121:67:  [3] (random) random:
  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.
                m->mothurOut("Setting random seed to " + toString(random) + ".\n\n");
data/mothur-1.44.3/source/commands/setdircommand.h:39:9:  [3] (random) random:
  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.
    int random;
data/mothur-1.44.3/source/commands/setseedcommand.cpp:65:70:  [3] (random) random:
  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.
                if (util.isInteger(temp)) { util.mothurConvert(temp, random); seed = true; }
data/mothur-1.44.3/source/commands/setseedcommand.cpp:82:26:  [3] (random) random:
  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.
        m->setRandomSeed(random);
data/mothur-1.44.3/source/commands/setseedcommand.cpp:83:59:  [3] (random) random:
  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.
        m->mothurOut("Setting random seed to " + toString(random) + ".\n\n");
data/mothur-1.44.3/source/commands/setseedcommand.h:37:9:  [3] (random) random:
  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.
    int random;
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:187:21:  [3] (random) random:
  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.
			if (subsample && random) {  m->mothurOut("[ERROR]: random must be false, if subsample=t.\n"); abort=true;  } 
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:201:9:  [3] (random) random:
  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.
			if (!random) {  iters = 0;  } //turn off random calcs
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:271:7:  [3] (random) random:
  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.
		if (random) { outSum << "UWSig"; m->mothurOut("UWSig"); }
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:294:22:  [3] (random) random:
  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.
                if (!random) { UWScoreSig[k].push_back(0.0);	}
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:297:17:  [3] (random) random:
  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.
            if (random) {  runRandomCalcs(T[i], userData);  }
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:344:8:  [3] (random) random:
  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.
			if (random)  {	printUnweightedFile(i+1);	}
data/mothur-1.44.3/source/commands/unifracunweightedcommand.cpp:715:8:  [3] (random) random:
  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.
			if (random) {
data/mothur-1.44.3/source/commands/unifracunweightedcommand.h:50:23:  [3] (random) random:
  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.
		bool abort, phylip, random, includeRoot, consensus, subsample;
data/mothur-1.44.3/source/commands/unifracweightedcommand.cpp:190:21:  [3] (random) random:
  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.
			if (subsample && random) {  m->mothurOut("[ERROR]: random must be false, if subsample=t.\n"); abort=true;  } 
data/mothur-1.44.3/source/commands/unifracweightedcommand.cpp:276:17:  [3] (random) random:
  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.
            if (random) { runRandomCalcs(T[i], ct, userData, (i+1), WScoreSig, groupComb);    }
data/mothur-1.44.3/source/commands/unifracweightedcommand.cpp:735:7:  [3] (random) random:
  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.
		if (random) { outSum << "WSig"; m->mothurOut("WSig"); }
data/mothur-1.44.3/source/commands/unifracweightedcommand.cpp:744:17:  [3] (random) random:
  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.
            if (random) {
data/mothur-1.44.3/source/commands/unifracweightedcommand.h:40:23:  [3] (random) random:
  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.
		bool abort, phylip, random, includeRoot, subsample, consensus, withReplacement;
data/mothur-1.44.3/source/subsample.cpp:33:33:  [3] (random) random:
  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.
                    vector<int> random;
data/mothur-1.44.3/source/subsample.cpp:36:57:  [3] (random) random:
  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.
                        for (int k = 0; k < num; k++) { random.push_back(j); }
data/mothur-1.44.3/source/subsample.cpp:38:46:  [3] (random) random:
  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.
                    util.mothurRandomShuffle(random);
data/mothur-1.44.3/source/subsample.cpp:41:68:  [3] (random) random:
  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.
                    for (int j = 0; j < size; j++) { sampleRandoms[random[j]]++; }
data/mothur-1.44.3/source/subsample.cpp:46:75:  [3] (random) random:
  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.
                    for (int j = size; j < thisSize; j++) { sampleRandoms[random[j]]++; }
data/mothur-1.44.3/source/subsample.cpp:89:29:  [3] (random) random:
  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.
                vector<int> random;
data/mothur-1.44.3/source/subsample.cpp:92:53:  [3] (random) random:
  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.
                    for (int k = 0; k < num; k++) { random.push_back(j); }
data/mothur-1.44.3/source/subsample.cpp:96:43:  [3] (random) random:
  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.
                long long totalNumReads = random.size()-1;
data/mothur-1.44.3/source/subsample.cpp:101:35:  [3] (random) random:
  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.
                    sampleRandoms[random[randomRead]]++;
data/mothur-1.44.3/source/subsample.cpp:110:43:  [3] (random) random:
  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.
                for (long long j = 0; j < random.size(); j++) {
data/mothur-1.44.3/source/subsample.cpp:112:39:  [3] (random) random:
  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.
                        sampleRandoms[random[j]]++;
data/mothur-1.44.3/source/utils.cpp:38:42:  [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.
        mersenne_twister_engine.seed(s); srand(s);
data/mothur-1.44.3/source/utils.cpp:255:16:  [3] (random) random:
  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.
        return random;
data/mothur-1.44.3/source/utils.cpp:270:16:  [3] (random) random:
  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.
        return random;
data/mothur-1.44.3/source/utils.cpp:285:16:  [3] (random) random:
  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.
        return random;
data/mothur-1.44.3/source/utils.cpp:300:16:  [3] (random) random:
  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.
        return random;
data/mothur-1.44.3/TestMothur/catch.hpp:1620:23:  [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.
    struct TrueType { char sizer[1]; };
data/mothur-1.44.3/TestMothur/catch.hpp:1621:24:  [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.
    struct FalseType { char sizer[2]; };
data/mothur-1.44.3/TestMothur/catch.hpp:2816: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 storage[sizeof(T)];
data/mothur-1.44.3/TestMothur/catch.hpp:5700:14:  [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).
        void open() {
data/mothur-1.44.3/TestMothur/catch.hpp:5780:26:  [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).
                section->open();
data/mothur-1.44.3/TestMothur/catch.hpp:5816:26:  [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).
                tracker->open();
data/mothur-1.44.3/TestMothur/catch.hpp:6895: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 data[bufferSize];
data/mothur-1.44.3/TestMothur/catch.hpp:6932:15:  [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_ofs.open( filename.c_str() );
data/mothur-1.44.3/TestMothur/catch.hpp:8091:21:  [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 asChar[sizeof (int)];
data/mothur-1.44.3/TestMothur/catch.hpp:8855:16:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1484:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
      fp = fopen(nj_args->outfilename, "w");  /* open for writing   */
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1486:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
      fp = fopen(nj_args->outfilename, "a");  /* open for appending */
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1990:3:  [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(dest->val, src->valhandle, NJ_NCELLS(src->ntaxa)*sizeof(float));
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1993:3:  [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(dest->r,  src->rhandle,  src->ntaxa*sizeof(float));
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1994:3:  [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(dest->r2, src->r2handle, src->ntaxa*sizeof(float));
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:169: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).
      nj_args.seed = atoi(optarg);
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:177:24:  [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).
      nj_args.ntrees = atoi(optarg);
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:411: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 input_mode[32];
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:415: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(input_mode, "Distance Matrix");
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:418: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(input_mode, "Unaligned Sequences");
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:421: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(input_mode, "Aligned Sequences");
data/mothur-1.44.3/source/clearcut/cmdargs.cpp:424: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(input_mode, "UNKNOWN");
data/mothur-1.44.3/source/clearcut/dmat.cpp:447: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).
    fp = fopen(nj_args->infilename, "r");
data/mothur-1.44.3/source/clearcut/dmat.cpp:777:8:  [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).
  fp = fopen(nj_args->matrixout, "w");
data/mothur-1.44.3/source/clearcut/fasta.cpp:61: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.
static const char NJ_dna_ambiguity_syms[NJ_NUM_DNA_AMBIGUITY_SYMS] = 
data/mothur-1.44.3/source/clearcut/fasta.cpp:70: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.
static const char NJ_protein_ambiguity_syms[NJ_NUM_PROTEIN_AMBIGUITY_SYMS] =
data/mothur-1.44.3/source/clearcut/fasta.cpp:76: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.
static const char NJ_dna_syms[NJ_NUM_DNA_SYMS] = 
data/mothur-1.44.3/source/clearcut/fasta.cpp:83: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.
static const char NJ_protein_syms[NJ_NUM_PROTEIN_SYMS] = 
data/mothur-1.44.3/source/clearcut/fasta.cpp:342: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).
    fp = fopen(nj_args->infilename, "r");
data/mothur-1.44.3/source/clearcut/getopt_long.cpp:474:1:  [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 *argv[50];
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:578:13:  [2] (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). Risk is low because the source is a constant string.
            strcpy(tempucl, "--ucl");
data/mothur-1.44.3/source/commands/countseqscommand.cpp:291: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 buffer[4096];
data/mothur-1.44.3/source/commands/countseqscommand.cpp:368: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 buffer[4096];
data/mothur-1.44.3/source/commands/distancecommand.cpp:288:14:  [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).
		fileHandle.open(outputFile.c_str());
data/mothur-1.44.3/source/commands/filterseqscommand.cpp:156:26:  [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).
			else {  soft = (float)atoi(temp.c_str()) / 100.0;  }
data/mothur-1.44.3/source/commands/getdistscommand.cpp:312: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 buffer[4096];        
data/mothur-1.44.3/source/commands/getgroupscommand.cpp:941: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 buffer[4096];
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:2335:17:  [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).
        pFile = fopen (fasta[1].c_str(),"rb");
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:2407:25:  [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).
                pFile = fopen (qual[0].c_str(),"rb");
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:2466:26:  [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).
                pFile2 = fopen (qual[1].c_str(),"rb");
data/mothur-1.44.3/source/commands/pairwiseseqscommand.cpp:244: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).
        fileHandle.open(outputFile.c_str());
data/mothur-1.44.3/source/commands/removedistscommand.cpp:315: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 buffer[4096];        
data/mothur-1.44.3/source/commands/removegroupscommand.cpp:998: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 buffer[4096];
data/mothur-1.44.3/source/commands/shhhercommand.cpp:258: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).
    pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/commands/shhhercommand.cpp:272: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).
    pFile2 = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/commands/trimflowscommand.cpp:636:11:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		pFile = fopen (flowFileName.c_str(),"rb");
data/mothur-1.44.3/source/commands/trimseqscommand.cpp:1159:21:  [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).
            pFile = fopen (qfilename.c_str(),"rb");
data/mothur-1.44.3/source/datastructures/groupmap.cpp:133: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 buffer[4096];
data/mothur-1.44.3/source/datastructures/groupmap.cpp:226: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 buffer[4096];
data/mothur-1.44.3/source/datastructures/groupmap.cpp:308: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 buffer[4096];
data/mothur-1.44.3/source/datastructures/groupmap.cpp:383: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 buffer[4096];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:67: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 buffer2 [8];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:72: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 buffer3 [4];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:77: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 rnumReads[4];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:84:33:  [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* hlength = new char  [2];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:90:33:  [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* klength = new char  [2];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:96:32:  [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* nflows = new char  [2];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:157: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 offsetBuffer[8];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:170: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 readIndexLength[4];
data/mothur-1.44.3/source/datastructures/sffheader.cpp:179: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 numSampleReads[4];
data/mothur-1.44.3/source/datastructures/sffread.cpp:90:42:  [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* rclipAdapterLeft = new char  [2];
data/mothur-1.44.3/source/datastructures/sffread.cpp:96:43:  [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* rclipAdapterRight = new char  [2];
data/mothur-1.44.3/source/datastructures/sffread.cpp:126: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 rflowgram [2];
data/mothur-1.44.3/source/datastructures/sffread.cpp:139: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 flowINdex[1];
data/mothur-1.44.3/source/datastructures/sffread.cpp:157: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 score[1];
data/mothur-1.44.3/source/datastructures/treemap.cpp:39: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 buffer[4096];
data/mothur-1.44.3/source/datastructures/treemap.cpp:118: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 buffer[4096];
data/mothur-1.44.3/source/read/readtree.cpp:237: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 name[MAX_LINE];
data/mothur-1.44.3/source/read/splitmatrix.cpp:416:15:  [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).
						outFile.open(fileName.c_str(), ios::app);
data/mothur-1.44.3/source/read/splitmatrix.cpp:505: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).
				outFile.open(fileName.c_str(), ios::app);
data/mothur-1.44.3/source/read/splitmatrix.cpp:601:24:  [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).
            fileHandle.open(tempDistFile.c_str());
data/mothur-1.44.3/source/read/splitmatrix.cpp:747:24:  [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).
            fileHandle.open(tempDistFile.c_str());
data/mothur-1.44.3/source/read/splitmatrix.cpp:902: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).
				outFile.open(fileName.c_str(), ios::ate);
data/mothur-1.44.3/source/read/splitmatrix.cpp:934: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).
	pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/read/splitmatrix.cpp:948:11:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	pFile2 = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/seqnoise.cpp:179:45:  [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 index = atoi(number.c_str());
data/mothur-1.44.3/source/seqnoise.cpp:186:37:  [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 index = atoi(number.c_str());
data/mothur-1.44.3/source/seqnoise.cpp:238: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 index = atoi(number.c_str());
data/mothur-1.44.3/source/seqnoise.cpp:245:17:  [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 index = atoi(number.c_str());
data/mothur-1.44.3/source/uchime_src/alpha.cpp:523:10:  [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 g_LetterToCharAmino[256] =
data/mothur-1.44.3/source/uchime_src/alpha.cpp:1043:10:  [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 g_LetterToCharNucleo[256] =
data/mothur-1.44.3/source/uchime_src/alpha.cpp:1371:1:  [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 g_CodonWordToAminoChar[4*4*4] =
data/mothur-1.44.3/source/uchime_src/alpha.cpp:1439:10:  [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 g_CharToCompChar[256] =
data/mothur-1.44.3/source/uchime_src/alpha2.cpp:12: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.
	static char Str[32];
data/mothur-1.44.3/source/uchime_src/alpha2.cpp:37: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.
	static char Str[32];
data/mothur-1.44.3/source/uchime_src/fractid.cpp:15:4:  [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(ptrDesc, "(term gap in Query)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:57:3:  [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(ptrDesc, "(ids=%u/cols=%u)", Ids, Cols);
data/mothur-1.44.3/source/uchime_src/fractid.cpp:97:3:  [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(ptrDesc, "(ids=%u/cols=%u)", Ids, Cols);
data/mothur-1.44.3/source/uchime_src/fractid.cpp:120:4:  [2] (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). Risk is low because the source is a constant string.
			strcpy(ptrDesc, "(no matches)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:166:3:  [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(ptrDesc, "(ids=%u/cols=%u)", Ids, Cols);
data/mothur-1.44.3/source/uchime_src/fractid.cpp:192:3:  [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(ptrDesc, "Gap opens %u, Id=1 - [(diffs=%u)/(target_length=%u)]",
data/mothur-1.44.3/source/uchime_src/fractid.cpp:233:3:  [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(ptrDesc, "(ids=%u/cols=%u)", Ids, Cols);
data/mothur-1.44.3/source/uchime_src/fractid.cpp:267:3:  [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(ptrDesc, "(ids=%u/shorter_length=%u)", Ids, MinLen);
data/mothur-1.44.3/source/uchime_src/fractid.cpp:282:4:  [2] (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). Risk is low because the source is a constant string.
			strcpy(ptrDesc, "(NULL path)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:295:5:  [2] (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). Risk is low because the source is a constant string.
				strcpy(ptrDesc, "(leftjust)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:305:5:  [2] (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). Risk is low because the source is a constant string.
				strcpy(ptrDesc, "(rightjust)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:365:9:  [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(ptrDesc, "(maxtgap)");
data/mothur-1.44.3/source/uchime_src/fractid.cpp:374:9:  [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(ptrDesc, "(maxqgap)");
data/mothur-1.44.3/source/uchime_src/globalalign2.cpp:39:2:  [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(PD.Front, Path.c_str(), n);
data/mothur-1.44.3/source/uchime_src/mx.h:26: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.
	static char s[16];
data/mothur-1.44.3/source/uchime_src/mx.h:28:2:  [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(s, "%12u", f);
data/mothur-1.44.3/source/uchime_src/mx.h:34: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.
	static char s[16];
data/mothur-1.44.3/source/uchime_src/mx.h:36:2:  [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(s, "%12d", f);
data/mothur-1.44.3/source/uchime_src/mx.h:42: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.
	static char s[16];
data/mothur-1.44.3/source/uchime_src/mx.h:44:2:  [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(s, "%5d", f);
data/mothur-1.44.3/source/uchime_src/mx.h:50: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.
	static char s[16];
data/mothur-1.44.3/source/uchime_src/mx.h:53:3:  [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(s, "%12.12s", "?");
data/mothur-1.44.3/source/uchime_src/mx.h:55:3:  [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(s, "%12.12s", "*");
data/mothur-1.44.3/source/uchime_src/mx.h:57:3:  [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(s, "%12.12s", ".");
data/mothur-1.44.3/source/uchime_src/mx.h:59:3:  [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(s, "%12.5f", f);
data/mothur-1.44.3/source/uchime_src/mx.h:61:3:  [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(s, "%12.4g", f);
data/mothur-1.44.3/source/uchime_src/mx.h:67: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.
	static char s[16];
data/mothur-1.44.3/source/uchime_src/mx.h:70:3:  [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(s, "%12.12s", "*");
data/mothur-1.44.3/source/uchime_src/mx.h:72:3:  [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(s, "%12.12s", ".");
data/mothur-1.44.3/source/uchime_src/mx.h:74:3:  [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(s, "%12.5f", f);
data/mothur-1.44.3/source/uchime_src/mx.h:76:3:  [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(s, "%12.4g", f);
data/mothur-1.44.3/source/uchime_src/mx.h:88: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.
	static char s[2];
data/mothur-1.44.3/source/uchime_src/mx.h:95: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.
	static char s[2];
data/mothur-1.44.3/source/uchime_src/mx.h:102: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.
	static char s[2];
data/mothur-1.44.3/source/uchime_src/mx.h:116: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 m_Name[32];
data/mothur-1.44.3/source/uchime_src/mx.h:117: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 m_Alpha[32];
data/mothur-1.44.3/source/uchime_src/mx.h:118: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 m_Alpha2[32];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:42: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.
static char *g_IOBuffers[256];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:178:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	FILE *f = fopen(FileName.c_str(), Mode);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:198:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	FILE *f = fopen(FileName.c_str(), "wb+");
data/mothur-1.44.3/source/uchime_src/myutils.cpp:335: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).
	int h = open(FileName.c_str(), O_RDONLY);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:517: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.
	static char szStr[MAX_FORMATTED_STRING_LENGTH];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:641: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.
	static char statm[64];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:647:3:  [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(statm, "/proc/%d/statm", (int) pid);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:650:11:  [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).
	int fd = open(statm, O_RDONLY);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:653: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 Buffer[64];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:725: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.
	static char Str[16];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:727:3:  [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(Str, "%02d:%02d", MM, SS);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:729:3:  [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(Str, "%02d:%02d:%02d", HH, MM, SS);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:738: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.
	static char Str[16];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:740:3:  [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(Str, "%.2gs", Secs);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:742:3:  [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(Str, "%.2fms", Secs*1e3);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:744:3:  [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(Str, "%.3fs", Secs);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:750: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.
	static char Str[32];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:753:3:  [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(Str, "%.1fkb", Bytes/1e3);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:755:3:  [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(Str, "%.1fMb", Bytes/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:757:3:  [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(Str, "%.0fMb", Bytes/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:759:3:  [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(Str, "%.1fGb", Bytes/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:761:3:  [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(Str, "%.0fGb", Bytes/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:763:3:  [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(Str, "%.3gb", Bytes);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:769: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.
	static char Str[32];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:773:3:  [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(Str, "%u", i);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:775:3:  [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(Str, "%.1fk", d/1e3);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:777:3:  [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(Str, "%.1fM", d/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:779:3:  [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(Str, "%.0fM", d/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:781:3:  [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(Str, "%.1fG", d/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:783:3:  [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(Str, "%.0fG", d/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:785:3:  [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(Str, "%.3g", d);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:791: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.
	static char Str[32];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:795:3:  [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(Str, "%.3g", a);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:797:3:  [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(Str, "%.3f", a);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:802:4:  [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(Str, "%.0f", d);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:804:4:  [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(Str, "%.1f", d);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:807:3:  [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(Str, "%.0f", d);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:809:3:  [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(Str, "%.1fk", d/1e3);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:811:3:  [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(Str, "%.1fM", d/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:813:3:  [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(Str, "%.0fM", d/1e6);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:815:3:  [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(Str, "%.1fG", d/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:817:3:  [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(Str, "%.0fG", d/1e9);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:819:3:  [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(Str, "%.3g", d);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:856: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 Str[32];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:857:3:  [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(Str, "%5.5s", MemBytesToStr(Bytes));
data/mothur-1.44.3/source/uchime_src/myutils.cpp:963: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.
	static char Str[16];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:965:2:  [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(Str, "%5.1f%%", p);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:979: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 Tmp[16];
data/mothur-1.44.3/source/uchime_src/myutils.cpp:980:4:  [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(Tmp, "%u", Index); 
data/mothur-1.44.3/source/uchime_src/myutils.cpp:1323:23:  [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).
			EnumValues[Name] = atoi(Value.c_str());
data/mothur-1.44.3/source/uchime_src/myutils.cpp:1391:24:  [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 *) Opt.Value = atoi(Value.c_str());
data/mothur-1.44.3/source/uchime_src/myutils.cpp:1676:2:  [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(t, s, n+1);
data/mothur-1.44.3/source/uchime_src/out.h:24: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 IdDesc[256];
data/mothur-1.44.3/source/uchime_src/seqdb.cpp:253:2:  [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(m_Seqs[Index], Seq, L);
data/mothur-1.44.3/source/uchime_src/seqdb.cpp:257:2:  [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(m_Labels[Index], Label, n);
data/mothur-1.44.3/source/uchime_src/setnucmx.cpp:24:2:  [2] (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). Risk is low because the source is a constant string.
	strcpy(g_SubstMxf.m_Alpha, "ACGT");
data/mothur-1.44.3/source/utils.cpp:559: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 buffer[MAX_PATH];
data/mothur-1.44.3/source/utils.cpp:813: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).
        fileHandle.open(completeFileName.c_str());
data/mothur-1.44.3/source/utils.cpp:835: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).
        fileHandle.open(completeFileName.c_str());
data/mothur-1.44.3/source/utils.cpp:857: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).
        fileHandle.open(completeFileName.c_str(), ios::binary);
data/mothur-1.44.3/source/utils.cpp:877: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).
        fileHandle.open(completeFileName.c_str(), ios::binary);
data/mothur-1.44.3/source/utils.cpp:894:14:  [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).
        file.open(completeFileName.c_str(), ios_base::in | ios_base::binary);
data/mothur-1.44.3/source/utils.cpp:917:14:  [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).
        file.open(completeFileName.c_str(), ios_base::in | ios_base::binary);
data/mothur-1.44.3/source/utils.cpp:1100: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).
        fileHandle.open(completeFileName.c_str(), ios::trunc);
data/mothur-1.44.3/source/utils.cpp:1116: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).
        fileHandle.open(completeFileName.c_str(), ios::trunc | ios::binary);
data/mothur-1.44.3/source/utils.cpp:1139: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1164: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1190: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1223: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1248: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).
        output.open(fullFileName.c_str(), ios::app | ios::binary);
data/mothur-1.44.3/source/utils.cpp:1258: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1289: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:1379: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).
        fileHandle.open(fileName.c_str(), ios::app);
data/mothur-1.44.3/source/utils.cpp:1393: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).
        fileHandle.open(fileName.c_str(), ios::app | ios::binary);
data/mothur-1.44.3/source/utils.cpp:1889: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).
        out.open(outTemp.c_str(), ios::trunc);
data/mothur-1.44.3/source/utils.cpp:1916: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).
        out.open(outTemp.c_str(), ios::trunc);
data/mothur-1.44.3/source/utils.cpp:2003: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 buffer[80];
data/mothur-1.44.3/source/utils.cpp:2193: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).
        fileHandle.open(fileName.c_str());
data/mothur-1.44.3/source/utils.cpp:2261:17:  [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).
        pFile = fopen (completeFileName.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2303:17:  [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).
        pFile = fopen (completeFileName.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2454:17:  [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).
        pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2508:17:  [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).
        pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2539:17:  [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).
        pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2620:17:  [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).
        pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:2723:17:  [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).
        pFile = fopen (filename.c_str(),"rb");
data/mothur-1.44.3/source/utils.cpp:3057: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3122: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3180: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3245: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3347: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3468: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3527: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3649: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 buffer[4096];
data/mothur-1.44.3/source/utils.cpp:3789: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 buffer[4096];
data/mothur-1.44.3/source/validparameter.cpp:91:9:  [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).
				a = atoi(range.at(1).c_str()); 
data/mothur-1.44.3/source/validparameter.cpp:96:9:  [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).
				b = atoi(range.at(3).c_str()); 
data/mothur-1.44.3/TestMothur/dataset.cpp:134:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Sequence read(in); util.gobble(in);
data/mothur-1.44.3/TestMothur/dataset.cpp:135:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        seqs.push_back(read);
data/mothur-1.44.3/TestMothur/fastqdataset.cpp:44:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            FastqRead read(in, ignore, format); util.gobble(in);
data/mothur-1.44.3/TestMothur/fastqdataset.cpp:45:50:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (!ignore) { ffastqReads.push_back(read);  count++; }
data/mothur-1.44.3/TestMothur/fastqdataset.cpp:66:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            FastqRead read(in, ignore, format); util.gobble(in);
data/mothur-1.44.3/TestMothur/fastqdataset.cpp:67:50:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (!ignore) { rfastqReads.push_back(read);  count++; }
data/mothur-1.44.3/TestMothur/testcontainers/testOligos.cpp:62:57:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    Oligos pairedOligosNoReverse; pairedOligosNoReverse.read(test.oligosfiles[1], false);
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:32:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    FastqRead read(seq, qual);
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:34:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    EXPECT_EQ(read.getSeq(), "ATGCGTCATC");
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:35:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    EXPECT_EQ(read.getScores()[0], 31);
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:44:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    FastqRead read(in, ignore, format);
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:46:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    EXPECT_EQ(read.getSeq(), (testFastq.reads[0]).getSeq());
data/mothur-1.44.3/TestMothur/testcontainers/testfastqread.cpp:47:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    EXPECT_EQ(read.getScores()[0], testFastq.reads[0].getScores()[0]);
data/mothur-1.44.3/source/chimera/myPerseus.cpp:1044:18:  [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.
		return (double)mismatch / (double)counter;
data/mothur-1.44.3/source/clearcut/clearcut.cpp:1966: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).
    dest->taxaname[i] = (char *)calloc(strlen(src->taxaname[i])+1, sizeof(char));
data/mothur-1.44.3/source/clearcut/distclearcut.cpp:149: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).
    dmat->taxaname[i] = (char *)calloc(strlen(alignment->titles[i])+1, sizeof(char));
data/mothur-1.44.3/source/clearcut/distclearcut.cpp:155:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(dmat->taxaname[i], alignment->titles[i], strlen(alignment->titles[i]));
data/mothur-1.44.3/source/clearcut/distclearcut.cpp:155:54:  [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).
    strncpy(dmat->taxaname[i], alignment->titles[i], strlen(alignment->titles[i]));
data/mothur-1.44.3/source/clearcut/dmat.cpp:183: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(token) == 1) {
data/mothur-1.44.3/source/clearcut/dmat.cpp:189: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).
  for(i=0;i<strlen(token);i++) {
data/mothur-1.44.3/source/clearcut/dmat.cpp:269: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).
  if(!NJ_is_number(token[strlen(token)-1])) {
data/mothur-1.44.3/source/clearcut/dmat.cpp:306:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  c = fgetc(fp);
data/mothur-1.44.3/source/clearcut/dmat.cpp:335:9:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    c = fgetc(fp);
data/mothur-1.44.3/source/clearcut/dmat.cpp:534: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).
      dmat->taxaname[row] = (char *)calloc(strlen(token->buf)+1, sizeof(char));
data/mothur-1.44.3/source/clearcut/fasta.cpp:380:9:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    c = fgetc(fp);
data/mothur-1.44.3/source/clearcut/fasta.cpp:452:42:  [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).
	alignment->titles[seq] = (char *)calloc(strlen(buf), sizeof(char));
data/mothur-1.44.3/source/clearcut/getopt_long.cpp:210:19:  [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).
        int len = strlen(arg);
data/mothur-1.44.3/source/clearcut/getopt_long.cpp:386: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).
            int len = strlen(opt);
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:161:15:  [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.
		vector<int> equal;
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:190:6:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
					equal.push_back(data.equal);
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:190:27:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
					equal.push_back(data.equal);
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:197:106:  [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.
				out << seq.getName() << '\t' << data.pound << '\t' << data.dash << '\t' << data.plus << '\t' << data.equal << '\t';
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:210:8:  [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.
		sort(equal.begin(), equal.end());
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:210:23:  [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.
		sort(equal.begin(), equal.end());
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:226:122:  [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.
		m->mothurOut("Minimum:\t" + toString(pound[0]) + "\t" + toString(dash[0]) + "\t" + toString(plus[0]) + "\t" + toString(equal[0]) + "\t" + toString(loop[0]) + "\t" + toString(tilde[0]) + "\t" + toString(total[0])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:227:148:  [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.
		m->mothurOut("2.5%-tile:\t" + toString(pound[ptile0_25]) + "\t" + toString(dash[ptile0_25]) + "\t" + toString(plus[ptile0_25]) + "\t" + toString(equal[ptile0_25]) + "\t"+ toString(loop[ptile0_25]) + "\t"+ toString(tilde[ptile0_25]) + "\t"+ toString(total[ptile0_25])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:228:141:  [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.
		m->mothurOut("25%-tile:\t" + toString(pound[ptile25]) + "\t" + toString(dash[ptile25]) + "\t" + toString(plus[ptile25]) + "\t" + toString(equal[ptile25]) + "\t" + toString(loop[ptile25]) + "\t" + toString(tilde[ptile25]) + "\t" + toString(total[ptile25])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:229:140:  [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.
		m->mothurOut("Median: \t" + toString(pound[ptile50]) + "\t" + toString(dash[ptile50]) + "\t" + toString(plus[ptile50]) + "\t" + toString(equal[ptile50]) + "\t" + toString(loop[ptile50]) + "\t" + toString(tilde[ptile50]) + "\t" + toString(total[ptile50])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:230:141:  [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.
		m->mothurOut("75%-tile:\t" + toString(pound[ptile75]) + "\t" + toString(dash[ptile75]) + "\t" + toString(plus[ptile75]) + "\t" + toString(equal[ptile75]) + "\t" + toString(loop[ptile75]) + "\t" + toString(tilde[ptile75]) + "\t" + toString(total[ptile75])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:231:149:  [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.
		m->mothurOut("97.5%-tile:\t" + toString(pound[ptile97_5]) + "\t" + toString(dash[ptile97_5]) + "\t" + toString(plus[ptile97_5]) + "\t" + toString(equal[ptile97_5]) + "\t" + toString(loop[ptile97_5]) + "\t" + toString(tilde[ptile97_5]) + "\t" + toString(total[ptile97_5])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.cpp:232:143:  [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.
		m->mothurOut("Maximum:\t" + toString(pound[ptile100]) + "\t" + toString(dash[ptile100]) + "\t" + toString(plus[ptile100]) + "\t" + toString(equal[ptile100]) + "\t" + toString(loop[ptile100]) + "\t" + toString(tilde[ptile100]) + "\t" + toString(total[ptile100])+ "\n");
data/mothur-1.44.3/source/commands/aligncheckcommand.h:22:6:  [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.
	int equal;
data/mothur-1.44.3/source/commands/aligncheckcommand.h:25:62:  [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.
	statData() : pound(0), loop(0), tilde(0), dash(0), plus(0), equal(0), total(0) {};	
data/mothur-1.44.3/source/commands/amovacommand.cpp:162:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		vector<string> sampleNames = readMatrix.read(distanceMatrix);
data/mothur-1.44.3/source/commands/anosimcommand.cpp:136:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		vector<string> sampleNames = readMatrix.read(distanceMatrix);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:233:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    attribute.read(attributeType, biomTableId);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:241:35:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        attribute.read(attributeType, &data);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:246:35:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        attribute.read(attributeType, data);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:259:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    attribute.read(attributeType, &data);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:263:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    attribute.read(attributeType, data);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:307:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            dataset.read((void*)data, str_type);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:329:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            dataset.read((void*)data, str_type);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:350:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            dataset.read(data, H5::PredType::NATIVE_INT, data_mspace, dataSpace);
data/mothur-1.44.3/source/commands/biominfocommand.cpp:370:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            dataset.read(data, H5::PredType::NATIVE_FLOAT, data_mspace, dataSpace);
data/mothur-1.44.3/source/commands/chimeraslayercommand.cpp:200:29:  [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.
			util.mothurConvert(temp, mismatch);
data/mothur-1.44.3/source/commands/chimeraslayercommand.cpp:775:84:  [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.
			chimera = new ChimeraSlayer(filename, templatefile, trim, search, ksize, match, mismatch, window, divR, minSimilarity, minCoverage, minBS, minSNP, parents, iters, increment, numwanted, realign, blastlocation, util.getRandomNumber());
data/mothur-1.44.3/source/commands/chimeraslayercommand.cpp:777:94:  [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.
			chimera = new ChimeraSlayer(filename, templatefile, trim, priority, search, ksize, match, mismatch, window, divR, minSimilarity, minCoverage, minBS, minSNP, parents, iters, increment, numwanted, realign, blastlocation, util.getRandomNumber());	
data/mothur-1.44.3/source/commands/chimeraslayercommand.h:57:57:  [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.
	int window, iters, increment, numwanted, ksize, match, mismatch, parents, minSimilarity, minCoverage, minBS, minSNP, templateSeqsLength;
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:358:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        strncat(tempUchime, uchimeCommand.c_str(), uchimeCommand.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:384:30:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempRef = '\0'; strncat(tempRef, "--db", 4);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:388:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempR = '\0'; strncat(tempR, params->templatefile.c_str(), params->templatefile.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:393:25:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        *tempIn = '\0'; strncat(tempIn, "--input", 7);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:397:23:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *temp = '\0'; strncat(temp, params->formattedFastaFilename.c_str(), params->formattedFastaFilename.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:402:24:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        *tempO = '\0'; strncat(tempO, "--uchimeout", 11);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:407:26:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempout = '\0'; strncat(tempout, params->driverOutputFName.c_str(), params->driverOutputFName.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:412:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempA = '\0'; strncat(tempA, "--uchimealns", 12);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:417:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempa = '\0'; strncat(tempa, params->driverAlns.c_str(), params->driverAlns.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:423:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempA = '\0'; strncat(tempA, "--strand", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:426:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempa = '\0'; strncat(tempa, params->vars->strand.c_str(), params->vars->strand.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:432:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempskew = '\0'; strncat(tempskew, "--abskew", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:437:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempSkew = '\0'; strncat(tempSkew, params->vars->abskew.c_str(), params->vars->abskew.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:443:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempminh = '\0'; strncat(tempminh, "--minh", 6);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:447:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMinH = '\0'; strncat(tempMinH, params->vars->minh.c_str(), params->vars->minh.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:454:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempmindiv = '\0'; strncat(tempmindiv, "--mindiv", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:458:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMindiv = '\0'; strncat(tempMindiv, params->vars->mindiv.c_str(), params->vars->mindiv.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:466:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempxn = '\0'; strncat(tempxn, "--xn", 4);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:470:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempXn = '\0'; strncat(tempXn, params->vars->xn.c_str(), params->vars->xn.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:477:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempdn = '\0'; strncat(tempdn, "--dn", 4);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:480:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempDn = '\0'; strncat(tempDn, params->vars->dn.c_str(), params->vars->dn.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:488:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempxa = '\0'; strncat(tempxa, "--xa", 4);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:491:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempXa = '\0'; strncat(tempXa, params->vars->xa.c_str(), params->vars->xa.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:499:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempchunks = '\0'; strncat(tempchunks, "--chunks", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:502:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempChunks = '\0'; strncat(tempChunks, params->vars->chunks.c_str(), params->vars->chunks.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:510:35:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempminchunk = '\0'; strncat(tempminchunk, "--minchunk", 10);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:513:35:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMinchunk = '\0'; strncat(tempMinchunk, params->vars->minchunk.c_str(), params->vars->minchunk.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:520:41:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempidsmoothwindow = '\0'; strncat(tempidsmoothwindow, "--idsmoothwindow", 16);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:524:41:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempIdsmoothwindow = '\0'; strncat(tempIdsmoothwindow, params->vars->idsmoothwindow.c_str(), params->vars->idsmoothwindow.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:532:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempmaxp = '\0'; strncat(tempmaxp, "--maxp", 6);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:535:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMaxp = '\0'; strncat(tempMaxp, params->vars->maxp.c_str(), params->vars->maxp.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:543:35:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempskipgaps = '\0'; strncat(tempskipgaps, "--noskipgaps", 12);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:550:36:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempskipgaps2 = '\0'; strncat(tempskipgaps2, "--noskipgaps2", 13);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:556:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempminlen = '\0'; strncat(tempminlen, "--minlen", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:561:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMinlen = '\0'; strncat(tempMinlen, params->vars->minlen.c_str(), params->vars->minlen.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:568:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempmaxlen = '\0'; strncat(tempmaxlen, "--maxlen", 8);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:571:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMaxlen = '\0'; strncat(tempMaxlen, params->vars->maxlen.c_str(), params->vars->maxlen.length());
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:584:37:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempqueryfract = '\0'; strncat(tempqueryfract, "--queryfract", 12);
data/mothur-1.44.3/source/commands/chimerauchimecommand.cpp:588:37:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempQueryfract = '\0'; strncat(tempQueryfract, params->vars->queryfract.c_str(), params->vars->queryfract.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:306:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        strncat(tempVsearch, vsearchCommand.c_str(), vsearchCommand.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:334:30:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempRef = '\0'; strncat(tempRef, "--db", 4);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:338:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempR = '\0'; strncat(tempR, params->templatefile.c_str(), params->templatefile.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:342:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempIn = '\0'; strncat(tempIn, "--uchime_ref", 12);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:345:27:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *temp = '\0'; strncat(temp, params->formattedFastaFilename.c_str(), params->formattedFastaFilename.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:350:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempIn = '\0'; strncat(tempIn, "--uchime_denovo", 15);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:353:27:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *temp = '\0'; strncat(temp, params->formattedFastaFilename.c_str(), params->formattedFastaFilename.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:366:24:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        *tempO = '\0'; strncat(tempO, "--chimeras", 10);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:369:26:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempout = '\0'; strncat(tempout, outputFNamec.c_str(), outputFNamec.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:373:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        *tempchimeraout = '\0'; strncat(tempchimeraout, "--uchimeout", 11);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:376:27:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempoutc = '\0'; strncat(tempoutc, params->driverOutputFName.c_str(), params->driverOutputFName.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:380:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        *tempxsize = '\0'; strncat(tempxsize, "--xsize", 7);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:385:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempA = '\0'; strncat(tempA, "--uchimealns", 12);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:390:28:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempa = '\0'; strncat(tempa, params->driverAlns.c_str(), params->driverAlns.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:397:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempskew = '\0'; strncat(tempskew, "--abskew", 8);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:402:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempSkew = '\0'; strncat(tempSkew, params->vars->abskew.c_str(), params->vars->abskew.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:408:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempminh = '\0'; strncat(tempminh, "--minh", 6);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:412:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMinH = '\0'; strncat(tempMinH, params->vars->minh.c_str(), params->vars->minh.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:419:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempmindiv = '\0'; strncat(tempmindiv, "--mindiv", 8);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:423:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMindiv = '\0'; strncat(tempMindiv, params->vars->mindiv.c_str(), params->vars->mindiv.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:430:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempmindiv = '\0'; strncat(tempmindiv, "--mindiffs", 10);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:433:33:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempMindiv = '\0'; strncat(tempMindiv, params->vars->mindiffs.c_str(), params->vars->mindiffs.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:440:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempxn = '\0'; strncat(tempxn, "--xn", 4);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:444:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempXn = '\0'; strncat(tempXn, params->vars->xn.c_str(), params->vars->xn.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:451:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            *tempdn = '\0'; strncat(tempdn, "--dn", 4);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:454:29:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempDn = '\0'; strncat(tempDn, params->vars->dn.c_str(), params->vars->dn.length());
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:460:59:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* threads = new char[10];  threads[0] = '\0'; strncat(threads, "--threads", 9);
data/mothur-1.44.3/source/commands/chimeravsearchcommand.cpp:464:30:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempThreads = '\0'; strncat(tempThreads, numProcessors.c_str(), numProcessors.length());
data/mothur-1.44.3/source/commands/classifysvmsharedcommand.cpp:331:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        designMap.read(designfile);
data/mothur-1.44.3/source/commands/classifysvmsharedcommand.cpp:370:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    designMap.read(designFilePath);
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:232:34:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		*clearcutParameters[0] = '\0'; strncat(clearcutParameters[0], "clearcut", 8);
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:235:104:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        if (phylipfile != "") {  clearcutParameters[1] = new char[11];  *clearcutParameters[1] = '\0'; strncat(clearcutParameters[1], "--distance", 10); 	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:238:96:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (fastafile != "") { clearcutParameters[1] = new char[12];  *clearcutParameters[1] = '\0'; strncat(clearcutParameters[1], "--alignment", 11);  	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:241:117:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (version)			{  clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--version", 9);  	parameterCount++; }
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:242:117:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (verbose)			{  clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--verbose", 9);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:243:115:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (quiet)				{  clearcutParameters[parameterCount] = new char[8];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--quiet", 7);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:247:48:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			*clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], tempSeed.c_str(), tempSeed.length());
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:250:118:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (norandom)			{  clearcutParameters[parameterCount] = new char[11];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--norandom", 10);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:251:117:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (shuffle)			{  clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--shuffle", 9);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:252:118:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (neighbor)			{  clearcutParameters[parameterCount] = new char[11];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--neighbor", 10);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:256:47:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
		*clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], tempIn.c_str(), tempIn.length());
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:259:120:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (stdoutWanted)		{  clearcutParameters[parameterCount] = new char[9];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--stdout", 8);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:263:48:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			*clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], tempOut.c_str(), tempOut.length());
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:268:113:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (DNA)				{  clearcutParameters[parameterCount] = new char[6];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--DNA", 5);  parameterCount++;		}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:269:117:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (protein)			{  clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--protein", 9);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:270:115:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (jukes)				{  clearcutParameters[parameterCount] = new char[8];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--jukes", 7);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:271:115:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (kimura)				{ clearcutParameters[parameterCount] = new char[9];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--kimura", 8);  parameterCount++;		}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:275:48:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			*clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], tempMatrix.c_str(), tempMatrix.length());
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:284:48:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			*clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], tempNtrees.c_str(), tempNtrees.length());
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:288:116:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (expblen)			{ clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--expblen", 9);  parameterCount++; 	}
data/mothur-1.44.3/source/commands/clearcutcommand.cpp:289:116:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		if (expdist)			{ clearcutParameters[parameterCount] = new char[10];  *clearcutParameters[parameterCount] = '\0'; strncat(clearcutParameters[parameterCount], "--expdist", 9);  parameterCount++;	}
data/mothur-1.44.3/source/commands/clustercommand.cpp:485:100:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* vsearchParameter = new char[vsearchCommand.length()+1];  vsearchParameter[0] = '\0'; strncat(vsearchParameter, vsearchCommand.c_str(), vsearchCommand.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:489:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* maxaccepts = new char[16];  maxaccepts[0] = '\0'; strncat(maxaccepts, "--maxaccepts=16", 15);
data/mothur-1.44.3/source/commands/clustercommand.cpp:494:108:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* processorsParameter = new char[processorsString.length()+1];  processorsParameter[0] = '\0'; strncat(processorsParameter, processorsString.c_str(), processorsString.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:498:61:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* usersort = new char[11];  usersort[0] = '\0'; strncat(usersort, "--usersort", 10);
data/mothur-1.44.3/source/commands/clustercommand.cpp:507:96:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* cutoffParameter = new char[cutoffString.length()+1];  cutoffParameter[0] = '\0'; strncat(cutoffParameter, cutoffString.c_str(), cutoffString.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:511:69:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* minseqlength = new char[18];  minseqlength[0] = '\0'; strncat(minseqlength, "--minseqlength=30", 17);
data/mothur-1.44.3/source/commands/clustercommand.cpp:515:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* wordlength = new char[15];  wordlength[0] = '\0'; strncat(wordlength, "--wordlength=8", 14);
data/mothur-1.44.3/source/commands/clustercommand.cpp:520:64:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* uc = new char[tempIn.length()+1];  uc[0] = '\0'; strncat(uc, tempIn.c_str(), tempIn.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:525:96:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* cluster_smallmen = new char[tempSorted.length()+1];  cluster_smallmen[0] = '\0'; strncat(cluster_smallmen, tempSorted.c_str(), tempSorted.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:529:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* maxrejects = new char[16];  maxrejects[0] = '\0'; strncat(maxrejects, "--maxrejects=64", 15);
data/mothur-1.44.3/source/commands/clustercommand.cpp:533:57:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* strand = new char[14];  strand[0] = '\0'; strncat(strand, "--strand=both", 13);
data/mothur-1.44.3/source/commands/clustercommand.cpp:538:67:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* log = new char[tempLog.length()+1];  log[0] = '\0'; strncat(log, tempLog.c_str(), tempLog.length());
data/mothur-1.44.3/source/commands/clustercommand.cpp:543:67:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            char* sizeorder = new char[12];  sizeorder[0] = '\0'; strncat(sizeorder, "--sizeorder", 11);
data/mothur-1.44.3/source/commands/clustercommand.cpp:579:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ReadMatrix* read;
data/mothur-1.44.3/source/commands/clustercommand.cpp:592:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            read->read(nameMap);
data/mothur-1.44.3/source/commands/clustercommand.cpp:596:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            read->read(ct);
data/mothur-1.44.3/source/commands/clustercommand.cpp:598:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        }else { read->read(nameMap); }
data/mothur-1.44.3/source/commands/clustercommand.cpp:608:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        delete read;
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:461:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    convert->read(nameMap);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1116:100:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* vsearchParameter = new char[vsearchCommand.length()+1];  vsearchParameter[0] = '\0'; strncat(vsearchParameter, vsearchCommand.c_str(), vsearchCommand.length());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1120:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* maxaccepts = new char[16];  maxaccepts[0] = '\0'; strncat(maxaccepts, "--maxaccepts=16", 15);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1124:59:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* threads = new char[12];  threads[0] = '\0'; strncat(threads, "--threads=1", 11);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1128:61:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* usersort = new char[11];  usersort[0] = '\0'; strncat(usersort, "--usersort", 10);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1137:96:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* cutoffParameter = new char[cutoffString.length()+1];  cutoffParameter[0] = '\0'; strncat(cutoffParameter, cutoffString.c_str(), cutoffString.length());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1141:69:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* minseqlength = new char[18];  minseqlength[0] = '\0'; strncat(minseqlength, "--minseqlength=30", 17);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1145:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* wordlength = new char[15];  wordlength[0] = '\0'; strncat(wordlength, "--wordlength=8", 14);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1150:64:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* uc = new char[tempIn.length()+1];  uc[0] = '\0'; strncat(uc, tempIn.c_str(), tempIn.length());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1155:96:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* cluster_smallmen = new char[tempSorted.length()+1];  cluster_smallmen[0] = '\0'; strncat(cluster_smallmen, tempSorted.c_str(), tempSorted.length());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1159:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* maxrejects = new char[16];  maxrejects[0] = '\0'; strncat(maxrejects, "--maxrejects=64", 15);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1163:57:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* strand = new char[14];  strand[0] = '\0'; strncat(strand, "--strand=both", 13);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1168:67:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        char* log = new char[tempLog.length()+1];  log[0] = '\0'; strncat(log, tempLog.c_str(), tempLog.length());
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1173:67:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            char* sizeorder = new char[12];  sizeorder[0] = '\0'; strncat(sizeorder, "--sizeorder", 11);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1290:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                read->read(nameMap);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1294:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                read->read(ct);
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1295:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            }else { read->read(nameMap); }
data/mothur-1.44.3/source/commands/clustersplitcommand.cpp:1306:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            delete read;  read = NULL;
data/mothur-1.44.3/source/commands/countseqscommand.cpp:300:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/commands/countseqscommand.cpp:377:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/commands/getdistscommand.cpp:314:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in3.read(buffer, 4096);
data/mothur-1.44.3/source/commands/getgroupscommand.cpp:943:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in3.read(buffer, 4096);
data/mothur-1.44.3/source/commands/getmimarkspackagecommand.cpp:406:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                Oligos oligos; oligos.read(oligosfile);
data/mothur-1.44.3/source/commands/homovacommand.cpp:145:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		vector<string> sampleNames = readMatrix.read(distanceMatrix);
data/mothur-1.44.3/source/commands/indicatorcommand.cpp:229:8:  [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) { //cleanup and exit
data/mothur-1.44.3/source/commands/indicatorcommand.cpp:234:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			int readOk = read->read(&ct);   if (readOk != 0) { m->mothurOut("Read Terminated.\n");  delete read; return 0; }
data/mothur-1.44.3/source/commands/indicatorcommand.cpp:234:99:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			int readOk = read->read(&ct);   if (readOk != 0) { m->mothurOut("Read Terminated.\n");  delete read; return 0; }
data/mothur-1.44.3/source/commands/indicatorcommand.cpp:235:48:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			vector<Tree*> T = read->getTrees();  delete read;
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:1389:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool read(Sequence& fSeq, Sequence& rSeq, QualityScores*& fQual, QualityScores*& rQual, Sequence& findexBarcode, Sequence& rindexBarcode, char delim, boost::iostreams::filtering_istream& inFF, boost::iostreams::filtering_istream& inRF, boost::iostreams::filtering_istream& inFQ, boost::iostreams::filtering_istream& inRQ, string thisfqualindexfile, string thisrqualindexfile, string format, int nameType, int offByOneTrimLength, MothurOut* m) {
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:1471:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool read(Sequence& fSeq, Sequence& rSeq, QualityScores*& fQual, QualityScores*& rQual,Sequence& findexBarcode, Sequence& rindexBarcode, char delim, ifstream& inFFasta, ifstream& inRFasta, ifstream& inFQualIndex, ifstream& inRQualIndex, string thisfqualindexfile, string thisrqualindexfile, string format, int nameType, int offByOneTrimLength, MothurOut* m) {
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:1757:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                ignore = read(fSeq, rSeq, fQual, rQual, findexBarcode, rindexBarcode, params->delim, inFF, inRF, inFQ, inRQ, thisfqualindexfile, thisrqualindexfile, params->format, params->nameType, params->offByOneTrimLength, params->m);
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:1760:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                ignore = read(fSeq, rSeq, fQual, rQual, findexBarcode, rindexBarcode, params->delim, inFFasta, inRFasta, inFQualIndex, inRQualIndex, thisfqualindexfile, thisrqualindexfile, params->format, params->nameType, params->offByOneTrimLength, params->m);
data/mothur-1.44.3/source/commands/makecontigscommand.cpp:2623:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Oligos oligos; oligos.read(oligosfile, false);
data/mothur-1.44.3/source/commands/mantelcommand.cpp:122:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		vector<string> names1 = readMatrix.read(matrix1);
data/mothur-1.44.3/source/commands/mantelcommand.cpp:129:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		vector<string> names2 = readMatrix2.read(matrix2);
data/mothur-1.44.3/source/commands/mergesfffilecommand.cpp:218:35:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        bool goodHeader = header->read(in);
data/mothur-1.44.3/source/commands/mergesfffilecommand.cpp:236:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            delete read;
data/mothur-1.44.3/source/commands/mgclustercommand.cpp:487:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read->read(nameMap);
data/mothur-1.44.3/source/commands/mgclustercommand.cpp:499:84:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (m->getControl_pressed()) { outputTypes.clear(); delete nameMap; delete read; delete list; delete rabund; return 0; }
data/mothur-1.44.3/source/commands/mgclustercommand.cpp:513:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            delete nameMap; delete read; delete list; delete rabund;
data/mothur-1.44.3/source/commands/mgclustercommand.cpp:525:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        delete read;
data/mothur-1.44.3/source/commands/mgclustercommand.h:45:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ReadBlast* read;
data/mothur-1.44.3/source/commands/nmdscommand.cpp:147:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		names = readFile.read(matrix);
data/mothur-1.44.3/source/commands/parsefastaqcommand.cpp:1066:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (fileOption > 0) { oligos.read(oligosfile, false);  } // like make.contigs
data/mothur-1.44.3/source/commands/parsefastaqcommand.cpp:1067:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        else {  oligos.read(oligosfile);  }
data/mothur-1.44.3/source/commands/pcoacommand.cpp:123:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		names = readFile.read(D);
data/mothur-1.44.3/source/commands/pcrseqscommand.cpp:372:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        oligos.read(oligosfile);
data/mothur-1.44.3/source/commands/preclustercommand.cpp:508:82:  [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.
void mergeSeqs(seqPNode* representative, seqPNode* duplicate, string& chunk, int mismatch, int originalCount, preClusterData* params){
data/mothur-1.44.3/source/commands/preclustercommand.cpp:518:115:  [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.
        chunk += representative->name + "\t" + duplicate->name + "\t" + toString(originalCount) + "\t" + toString(mismatch) + "\t" + duplicate->sequence + "\n";
data/mothur-1.44.3/source/commands/preclustercommand.cpp:520:28:  [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.
        duplicate->diffs = mismatch;
data/mothur-1.44.3/source/commands/preclustercommand.cpp:566:33:  [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 <= params->diffs) { mergeSeqs(params->alignSeqs[i], params->alignSeqs[j], chunk, mismatch, originalCount[j], params); count++; }
data/mothur-1.44.3/source/commands/preclustercommand.cpp:566:123:  [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 <= params->diffs) { mergeSeqs(params->alignSeqs[i], params->alignSeqs[j], chunk, mismatch, originalCount[j], params); count++; }
data/mothur-1.44.3/source/commands/preclustercommand.cpp:601:33:  [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 <= params->diffs && skew <= beta[mismatch]) { mergeSeqs(params->alignSeqs[i], params->alignSeqs[j], chunk, mismatch, originalCount[j], params); count++; }
data/mothur-1.44.3/source/commands/preclustercommand.cpp:601:75:  [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 <= params->diffs && skew <= beta[mismatch]) { mergeSeqs(params->alignSeqs[i], params->alignSeqs[j], chunk, mismatch, originalCount[j], params); count++; }
data/mothur-1.44.3/source/commands/preclustercommand.cpp:601:149:  [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 <= params->diffs && skew <= beta[mismatch]) { mergeSeqs(params->alignSeqs[i], params->alignSeqs[j], chunk, mismatch, originalCount[j], params); count++; }
data/mothur-1.44.3/source/commands/rarefactsharedcommand.cpp:214:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            designMap.read(designfile);
data/mothur-1.44.3/source/commands/removedistscommand.cpp:317:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in3.read(buffer, 4096);
data/mothur-1.44.3/source/commands/removegroupscommand.cpp:1000:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in3.read(buffer, 4096);
data/mothur-1.44.3/source/commands/seqerrorcommand.cpp:576:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                report.read(reportFile);
data/mothur-1.44.3/source/commands/seqerrorcommand.cpp:581:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                quality.read(qualFile);
data/mothur-1.44.3/source/commands/seqerrorcommand.cpp:591:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                quality.read(qualFile);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:311:35:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        bool goodHeader = header->read(in);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:329:45:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (split > 1) { assignToSample(read, trimOligos, rtrimOligos); }
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:343:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            delete read;
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:467:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void SffInfoCommand::assignToSample(SffRead*& read, TrimOligos*& trimOligos, TrimOligos*& rtrimOligos){
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:472:60:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (hasOligos)      {  trashCodeLength = findGroup(read, barcodeIndex, primerIndex, trimOligos, rtrimOligos);                }
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:473:60:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        else if (hasGroup)  {  trashCodeLength = findGroup(read, barcodeIndex, primerIndex, "groupMode");   }
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:493:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int SffInfoCommand::findGroup(SffRead*& read, int& barcode, int& primer, TrimOligos*& trimOligos, TrimOligos*& rtrimOligos) {
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:611:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int SffInfoCommand::findGroup(SffRead*& read, int& barcode, int& primer, string groupMode) {
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:682:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			SffRead read(numFlows);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:688:4:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			read.setName(seqName);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:690:56:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			string runPrefix = parseHeaderLineToString(inSFF);		read.setTimeStamp(runPrefix);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:691:58:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			string regionNumber = parseHeaderLineToString(inSFF);	read.setRegion(regionNumber);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:692:57:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			string xyLocation = parseHeaderLineToString(inSFF);		read.setXY(xyLocation);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:700:75:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            unsigned short readHeaderLen = parseHeaderLineToShort(inSFF); read.setHeaderLength(readHeaderLen);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:701:72:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            unsigned short nameLength = parseHeaderLineToShort(inSFF); read.setNameLength(nameLength);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:702:48:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			int numBases = parseHeaderLineToInt(inSFF);	read.setNumBases(numBases);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:703:74:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            unsigned short clipQualLeft = parseHeaderLineToShort(inSFF); read.setClipQualLeft(clipQualLeft);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:704:66:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			unsigned short clipQualRight = parseHeaderLineToShort(inSFF); read.setClipQualRight(clipQualRight);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:705:74:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            unsigned short clipAdapLeft = parseHeaderLineToShort(inSFF); read.setClipAdapterLeft(clipAdapLeft);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:706:75:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            unsigned short clipAdapRight = parseHeaderLineToShort(inSFF); read.setClipAdapterRight(clipAdapRight);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:710:96:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            vector<unsigned short> flowVector = parseHeaderLineToFloatVector(inSFF, numFlows);	read.setFlowgrams(flowVector);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:716:4:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			read.setFlowIndex(flowIndicesAdjusted);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:718:51:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			string bases = parseHeaderLineToString(inSFF); read.setBases(bases);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:719:86:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			vector<unsigned int> qualityScores = parseHeaderLineToIntVector(inSFF, numBases); read.setQualScores(qualityScores);
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:724:53:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			if (seqNames.size() != 0) {   if (seqNames.count(read.getName()) == 0) { print = false; }  }
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:728:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				if (fasta)	{	read.printFasta(outFasta, trim);	}
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:729:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				if (qual)	{	read.printQuality(outQual, trim);	}
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:730:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				if (flow)	{	read.printFlow(outFlow);	        }
data/mothur-1.44.3/source/commands/sffinfocommand.cpp:863:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        oligosObject->read(oligoFile);
data/mothur-1.44.3/source/commands/sffinfocommand.h:60:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int findGroup(SffRead*& read, int& barcode, int& primer, TrimOligos*&, TrimOligos*&);
data/mothur-1.44.3/source/commands/shhhercommand.cpp:834:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		read->read(clusterNameMap);
data/mothur-1.44.3/source/commands/shhhercommand.cpp:839:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		delete read; 
data/mothur-1.44.3/source/commands/sracommand.cpp:1231:62:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if ((fileOption == 3) || (fileOption == 5)) { oligos.read(oligosfile, false);  } //like make.contigs
data/mothur-1.44.3/source/commands/sracommand.cpp:1232:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        else {  oligos.read(oligosfile);  }
data/mothur-1.44.3/source/commands/srainfocommand.cpp:264:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        strncat(tempPrefetch, prefetchCommand.c_str(), prefetchCommand.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:269:59:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            char* maxs = new char[3];     maxs[0] = '\0'; strncat(maxs, "-X", 2);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:273:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
            *tempSize = '\0'; strncat(tempSize, msize.c_str(), msize.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:278:67:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* outputFile = new char[3];     outputFile[0] = '\0'; strncat(outputFile, "-o", 2);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:284:30:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempoutfile = '\0'; strncat(tempoutfile, outputFileName.c_str(), outputFileName.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:335:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        strncat(tempFasterQ, fasterQCommand.c_str(), fasterQCommand.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:345:65:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            splitFiles = new char[3];     splitFiles[0] = '\0'; strncat(splitFiles, "-S", 2);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:347:66:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
            splitFiles = new char[14];     splitFiles[0] = '\0'; strncat(splitFiles, "--split-files", 13);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:355:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		splitSingleFiles[0] = '\0'; strncat(splitSingleFiles, "-3", 2);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:358:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
		splitSingleFiles[0] = '\0'; strncat(splitSingleFiles, "--split-3", 9);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:364:59:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
        char* threads = new char[10];  threads[0] = '\0'; strncat(threads, "--threads", 9);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:368:30:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
        *tempThreads = '\0'; strncat(tempThreads, numProcessors.c_str(), numProcessors.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:374:63:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
                char* gzip = new char[7];     gzip[0] = '\0'; strncat(gzip, "--gzip", 6);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:382:56:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
			outputFile = new char[3];     outputFile[0] = '\0'; strncat(outputFile, "-o", 2);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:387:25:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			*tempoutfile = '\0'; strncat(tempoutfile, outputFileName.c_str(), outputFileName.length());
data/mothur-1.44.3/source/commands/srainfocommand.cpp:392:57:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
				outputFile = new char[9];     outputFile[0] = '\0'; strncat(outputFile, "--outdir", 8);
data/mothur-1.44.3/source/commands/srainfocommand.cpp:395:26:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
				*tempoutfile = '\0'; strncat(tempoutfile, outputFileName.c_str(), outputFileName.length());
data/mothur-1.44.3/source/commands/treesharedcommand.cpp:304:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                readMatrix->read(nameMap);
data/mothur-1.44.3/source/commands/treesharedcommand.cpp:310:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                readMatrix->read(ct);
data/mothur-1.44.3/source/commands/treesharedcommand.cpp:313:65:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            }else { NameAssignment* nameMap = NULL; readMatrix->read(nameMap); list = readMatrix->getListVector(); }
data/mothur-1.44.3/source/commands/trimflowscommand.cpp:594:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Oligos oligos; oligos.read(oligoFileName);
data/mothur-1.44.3/source/commands/trimseqscommand.cpp:849:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            oligos.read(oligoFile);
data/mothur-1.44.3/source/datastructures/blastalign.cpp:23:4:  [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.
			mismatch(mm)			//	This is the penalty to assess for a mismatch (mismatch <= 0)
data/mothur-1.44.3/source/datastructures/blastalign.cpp:62:63:  [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.
	blastCommand += " -r " + toString(match) + " -q " + toString(mismatch);
data/mothur-1.44.3/source/datastructures/blastalign.hpp:38:8:  [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.
	float mismatch;
data/mothur-1.44.3/source/datastructures/blastdb.cpp:201:19:  [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.
		float numBases, mismatch, gap, startQuery, endQuery, startRef, endRef, score, searchScore;
data/mothur-1.44.3/source/datastructures/blastdb.cpp:237:77:  [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.
			m8FileHandle >> dummy >> templateAccession >> searchScore >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/datastructures/designmap.cpp:16:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read(file);
data/mothur-1.44.3/source/datastructures/designmap.cpp:24:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int DesignMap::read(string file) {
data/mothur-1.44.3/source/datastructures/designmap.h:32:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(string);
data/mothur-1.44.3/source/datastructures/filefile.cpp:26:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read(f, mode);
data/mothur-1.44.3/source/datastructures/filefile.cpp:86:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
vector< vector<string> > FileFile::read(string f, string mode){
data/mothur-1.44.3/source/datastructures/filefile.hpp:85:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    vector< vector<string> > read(string, string); //read file, used with () constructor
data/mothur-1.44.3/source/datastructures/groupmap.cpp:162:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/datastructures/groupmap.cpp:239:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/datastructures/groupmap.cpp:315:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/datastructures/groupmap.cpp:390:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/datastructures/kmeralign.cpp:120:29:  [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.
        int unknown, match, mismatch; unknown = 0; match = 0; mismatch = 0;
data/mothur-1.44.3/source/datastructures/kmeralign.cpp:142:59:  [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.
            prob = (-1.38629 * unknown + match * pmatch + mismatch * pmismatch);
data/mothur-1.44.3/source/datastructures/kmeralign.cpp:144:95:  [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.
            prob = (-1.38629 * (aLength + bLength - 2 * overlap + unknown) + match * pmatch + mismatch * pmismatch);
data/mothur-1.44.3/source/datastructures/oligos.cpp:50:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int Oligos::read(string o){
data/mothur-1.44.3/source/datastructures/oligos.cpp:69:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int Oligos::read(string o, bool reverse){
data/mothur-1.44.3/source/datastructures/oligos.h:25:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(string);
data/mothur-1.44.3/source/datastructures/oligos.h:26:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(string, bool); //read without reversing the paired barcodes, for make.contigs.
data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp:61:25:  [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.
        float numBases, mismatch, gap, startQuery, endQuery, startRef, endRef, score, lengthThisSeq;
data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp:76:79:  [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.
            fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp:114:79:  [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.
            fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp:290:71:  [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.
            in >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/datastructures/optiblastmatrix.cpp:340:71:  [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.
            in >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/datastructures/qualityscores.cpp:140:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int QualityScores::read(ifstream& qFile){
data/mothur-1.44.3/source/datastructures/qualityscores.h:33:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(ifstream&);
data/mothur-1.44.3/source/datastructures/reportfile.cpp:43:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReportFile::read(ifstream& repFile){
data/mothur-1.44.3/source/datastructures/reportfile.h:22:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(ifstream&);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:34:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read(in);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:44:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool SffCommonHeader::read(ifstream& in){
data/mothur-1.44.3/source/datastructures/sffheader.cpp:55:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*magic), 4);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:61:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*cversion), 4);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:68:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer2, 8);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:73:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer3, 4);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:78:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(rnumReads, 4);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:85:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*hlength), 2);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:91:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*klength), 2);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:97:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*nflows), 2);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:103:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*fcode), 1);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:109:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*tempBuffer), numFlows);
data/mothur-1.44.3/source/datastructures/sffheader.cpp:116:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*tempBuffer2), keyLength);
data/mothur-1.44.3/source/datastructures/sffheader.hpp:74:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool read(ifstream& in);
data/mothur-1.44.3/source/datastructures/sffread.cpp:61:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*readHeaderLength), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:67:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*readNameLength), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:73:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*readNumBases), 4);
data/mothur-1.44.3/source/datastructures/sffread.cpp:79:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*rclipQualLeft), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:85:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*rclipQualRight), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:91:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*rclipAdapterLeft), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:97:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*rclipAdapterRight), 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:103:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*readName), nameLength);
data/mothur-1.44.3/source/datastructures/sffread.cpp:127:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in.read(rflowgram, 2);
data/mothur-1.44.3/source/datastructures/sffread.cpp:140:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in.read(flowINdex, 1);
data/mothur-1.44.3/source/datastructures/sffread.cpp:148:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(&(*readBases), numBases);
data/mothur-1.44.3/source/datastructures/sffread.cpp:158:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                in.read(score, 1);
data/mothur-1.44.3/source/datastructures/treemap.cpp:46:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/datastructures/treemap.cpp:125:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            fileHandle.read(buffer, 4096);
data/mothur-1.44.3/source/gotohoverlap.cpp:29:40:  [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.
	gapOpen(gO), gapExtend(gE), match(f), mismatch(mm), Alignment(r) {
data/mothur-1.44.3/source/gotohoverlap.cpp:63:56:  [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.
				else					{	diagonal = alignment[i-1][j-1].cValue + mismatch;	}
data/mothur-1.44.3/source/gotohoverlap.hpp:40:8:  [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.
	float mismatch;
data/mothur-1.44.3/source/mothur.cpp:107:31:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
                *temp = '\0'; strncat(temp, "#help();quit();", 15);
data/mothur-1.44.3/source/nast.cpp:384:34:  [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.
		float similarity = 100 * (1. - mismatch / (float)denominator);
data/mothur-1.44.3/source/needlemanoverlap.cpp:28:20:  [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.
gap(gO), match(f), mismatch(mm), Alignment(r) {							//	the gap openning penalty is assessed for
data/mothur-1.44.3/source/needlemanoverlap.cpp:67:56:  [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.
				else					{	diagonal = alignment[i-1][j-1].cValue + mismatch;	}
data/mothur-1.44.3/source/needlemanoverlap.cpp:123:83:  [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.
				else                                {	diagonal = alignment[i-1][j-1].cValue + mismatch;	}
data/mothur-1.44.3/source/needlemanoverlap.hpp:40:8:  [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.
	float mismatch;
data/mothur-1.44.3/source/read/readblast.cpp:33:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadBlast::read(NameAssignment* nameMap) {
data/mothur-1.44.3/source/read/readblast.cpp:50:19:  [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.
		float numBases, mismatch, gap, startQuery, endQuery, startRef, endRef, score, lengthThisSeq;
data/mothur-1.44.3/source/read/readblast.cpp:68:70:  [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.
			fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/read/readblast.cpp:103:70:  [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.
			fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
data/mothur-1.44.3/source/read/readblast.h:28:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(NameAssignment*);
data/mothur-1.44.3/source/read/readcluster.cpp:25:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadCluster::read(NameAssignment*& nameMap){
data/mothur-1.44.3/source/read/readcluster.cpp:45:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadCluster::read(CountTable*& ct){
data/mothur-1.44.3/source/read/readcluster.h:27:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(NameAssignment*&);
data/mothur-1.44.3/source/read/readcluster.h:28:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(CountTable*&);
data/mothur-1.44.3/source/read/readcolumn.cpp:31:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadColumnMatrix::read(NameAssignment* nameMap){
data/mothur-1.44.3/source/read/readcolumn.cpp:151:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadColumnMatrix::read(CountTable* countTable){
data/mothur-1.44.3/source/read/readcolumn.h:22:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(NameAssignment*);
data/mothur-1.44.3/source/read/readcolumn.h:23:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(CountTable*);
data/mothur-1.44.3/source/read/readmatrix.hpp:26:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual int read(NameAssignment*){ return 1; }
data/mothur-1.44.3/source/read/readmatrix.hpp:27:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual int read(CountTable*){ return 1; }
data/mothur-1.44.3/source/read/readphylip.cpp:32:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadPhylipMatrix::read(NameAssignment* nameMap){
data/mothur-1.44.3/source/read/readphylip.cpp:202:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadPhylipMatrix::read(CountTable* countTable){
data/mothur-1.44.3/source/read/readphylip.h:22:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(NameAssignment*);
data/mothur-1.44.3/source/read/readphylip.h:23:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(CountTable*);
data/mothur-1.44.3/source/read/readphylipvector.cpp:25:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
vector<string> ReadPhylipVector::read(vector< vector<double> >& matrix) {
data/mothur-1.44.3/source/read/readphylipvector.cpp:112:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
vector<string> ReadPhylipVector::read(vector<seqDist>& matrix) {
data/mothur-1.44.3/source/read/readphylipvector.h:24:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	vector<string> read(vector< vector<double> >&); //pass in matrix to fill with values, returns vector of strings containing names in phylipfile
data/mothur-1.44.3/source/read/readphylipvector.h:25:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	vector<string> read(vector<seqDist>&); //pass in matrix to fill with values, returns vector of strings containing names in phylipfile
data/mothur-1.44.3/source/read/readtree.cpp:98:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ReadNewickTree::read(CountTable* ct) {
data/mothur-1.44.3/source/read/readtree.h:29:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		virtual int read(CountTable*) = 0;
data/mothur-1.44.3/source/read/readtree.h:54:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(CountTable*);
data/mothur-1.44.3/source/read/treereader.cpp:82:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		int readOk = read->read(ct); 
data/mothur-1.44.3/source/read/treereader.cpp:84:66:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (readOk != 0) { m->mothurOut("Read Terminated.\n");  delete read; m->setControl_pressed(true); return 0; }
data/mothur-1.44.3/source/read/treereader.cpp:88:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		delete read;
data/mothur-1.44.3/source/refchimeratest.cpp:651:17:  [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.
	return (double)mismatch / (double)(mismatch + match);	
data/mothur-1.44.3/source/uchime_src/fractid.cpp:286: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).
	unsigned ColCount = (unsigned) strlen(Path);
data/mothur-1.44.3/source/uchime_src/mx.cpp:143:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(m_Name, Name, n);
data/mothur-1.44.3/source/uchime_src/mx.cpp:181:19:  [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).
	unsigned Width = strlen(z);
data/mothur-1.44.3/source/uchime_src/mx.cpp:190:16:  [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).
		unsigned n = strlen(m_Alpha);
data/mothur-1.44.3/source/uchime_src/mx.cpp:209:16:  [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).
		unsigned n = strlen(m_Alpha2);
data/mothur-1.44.3/source/uchime_src/mx.h:188:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(m_Alpha, Alpha, n);
data/mothur-1.44.3/source/uchime_src/myopts.h:146:10:  [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.
FLT_OPT(	mismatch,				-2.0,		0.0,		FLT_MAX)
data/mothur-1.44.3/source/uchime_src/myutils.cpp:349:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	size_t n = read(h, Buffer, stBytes);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:404: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).
	unsigned n = strlen(Line);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:420:11:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		int c = fgetc(f);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:654:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int n = read(fd, Buffer, sizeof(Buffer) - 1);
data/mothur-1.44.3/source/uchime_src/myutils.cpp:1674: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).
	unsigned n = unsigned(strlen(s));
data/mothur-1.44.3/source/uchime_src/path.cpp:135: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).
	unsigned NeededBytes = (unsigned) strlen(PathStr) + 1;
data/mothur-1.44.3/source/uchime_src/path.h:44: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).
		unsigned L = (unsigned) strlen(Start);
data/mothur-1.44.3/source/uchime_src/seqdb.cpp:42: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).
			unsigned n = strlen(m_Labels[i]);
data/mothur-1.44.3/source/uchime_src/seqdb.cpp:143: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).
		unsigned L = (unsigned) strlen(m_Labels[Index]);
data/mothur-1.44.3/source/uchime_src/seqdb.cpp:255: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).
	unsigned n = strlen(Label) + 1;
data/mothur-1.44.3/source/uchime_src/setnucmx.cpp:21: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).
	unsigned N = unsigned(strlen(Alphabet));
data/mothur-1.44.3/source/utils.cpp:1141:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:1167:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:1192:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:1225:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:1260:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:1291:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                input.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:2800:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(chunk, size);
data/mothur-1.44.3/source/utils.cpp:3065:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3130:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3188:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3253:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3355:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3476:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3535:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3657:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:3794:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            in.read(buffer, 4096);
data/mothur-1.44.3/source/utils.cpp:4222:16:  [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 equal;
data/mothur-1.44.3/source/utils.cpp:4236:16:  [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 equal;

ANALYSIS SUMMARY:

Hits = 713
Lines analyzed = 226745 in approximately 6.48 seconds (35005 lines/second)
Physical Source Lines of Code (SLOC) = 161381
Hits@level = [0] 336 [1] 417 [2] 218 [3]  46 [4]  32 [5]   0
Hits@level+ = [0+] 1049 [1+] 713 [2+] 296 [3+]  78 [4+]  32 [5+]   0
Hits/KSLOC@level+ = [0+] 6.50015 [1+] 4.41812 [2+] 1.83417 [3+] 0.483328 [4+] 0.198289 [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.