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.