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/wsclean-2.10.1/parsetreader.h
Examining data/wsclean-2.10.1/nlplfitter.cpp
Examining data/wsclean-2.10.1/imageweights.h
Examining data/wsclean-2.10.1/distributed/slave.h
Examining data/wsclean-2.10.1/distributed/taskmessage.h
Examining data/wsclean-2.10.1/distributed/slave.cpp
Examining data/wsclean-2.10.1/distributed/wsclean-mp.cpp
Examining data/wsclean-2.10.1/areaset.h
Examining data/wsclean-2.10.1/polynomialfitter.cpp
Examining data/wsclean-2.10.1/dftpredictionalgorithm.h
Examining data/wsclean-2.10.1/primarybeam/voltagepattern.cpp
Examining data/wsclean-2.10.1/primarybeam/atcabeam.cpp
Examining data/wsclean-2.10.1/primarybeam/atcabeam.h
Examining data/wsclean-2.10.1/primarybeam/vlabeam.cpp
Examining data/wsclean-2.10.1/primarybeam/vlabeam.h
Examining data/wsclean-2.10.1/primarybeam/voltagepattern.h
Examining data/wsclean-2.10.1/aterms/dishaterm.cpp
Examining data/wsclean-2.10.1/aterms/atermresampler.cpp
Examining data/wsclean-2.10.1/aterms/atermbase.cpp
Examining data/wsclean-2.10.1/aterms/lofarbeamterm.h
Examining data/wsclean-2.10.1/aterms/fitsaterm.cpp
Examining data/wsclean-2.10.1/aterms/pafbeamterm.cpp
Examining data/wsclean-2.10.1/aterms/dldmaterm.cpp
Examining data/wsclean-2.10.1/aterms/dldmaterm.h
Examining data/wsclean-2.10.1/aterms/fitsatermbase.h
Examining data/wsclean-2.10.1/aterms/cache.cpp
Examining data/wsclean-2.10.1/aterms/mwabeamterm.h
Examining data/wsclean-2.10.1/aterms/pafbeamterm.h
Examining data/wsclean-2.10.1/aterms/fitsatermbase.cpp
Examining data/wsclean-2.10.1/aterms/atermconfig.h
Examining data/wsclean-2.10.1/aterms/dishaterm.h
Examining data/wsclean-2.10.1/aterms/atermbeam.h
Examining data/wsclean-2.10.1/aterms/atermresampler.h
Examining data/wsclean-2.10.1/aterms/fitsaterm.h
Examining data/wsclean-2.10.1/aterms/cache.h
Examining data/wsclean-2.10.1/aterms/lofarbeamterm.cpp
Examining data/wsclean-2.10.1/aterms/atermstub.h
Examining data/wsclean-2.10.1/aterms/mwabeamterm.cpp
Examining data/wsclean-2.10.1/aterms/atermbase.h
Examining data/wsclean-2.10.1/aterms/telescope.h
Examining data/wsclean-2.10.1/model/modelparser.h
Examining data/wsclean-2.10.1/model/tokenizer.h
Examining data/wsclean-2.10.1/model/modelsource.h
Examining data/wsclean-2.10.1/model/model.cpp
Examining data/wsclean-2.10.1/model/modelcomponent.h
Examining data/wsclean-2.10.1/model/powerlawsed.h
Examining data/wsclean-2.10.1/model/spectralenergydistribution.h
Examining data/wsclean-2.10.1/model/measuredsed.h
Examining data/wsclean-2.10.1/model/measurement.h
Examining data/wsclean-2.10.1/model/model.h
Examining data/wsclean-2.10.1/model/bbsmodel.h
Examining data/wsclean-2.10.1/mwa/tilebeambase.h
Examining data/wsclean-2.10.1/mwa/beam2016implementation.h
Examining data/wsclean-2.10.1/mwa/tilebeambase.cpp
Examining data/wsclean-2.10.1/mwa/mwabeam.cpp
Examining data/wsclean-2.10.1/mwa/recursive_lock.h
Examining data/wsclean-2.10.1/mwa/tilebeam2016.cpp
Examining data/wsclean-2.10.1/mwa/factorialtable.h
Examining data/wsclean-2.10.1/mwa/tilebeam2016.h
Examining data/wsclean-2.10.1/mwa/mwabeam.h
Examining data/wsclean-2.10.1/mwa/beam2016implementation.cpp
Examining data/wsclean-2.10.1/application.h
Examining data/wsclean-2.10.1/msselection.cpp
Examining data/wsclean-2.10.1/polynomialchannelfitter.h
Examining data/wsclean-2.10.1/nlplfitter.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/polarization.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/imagecoordinates.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/uvector.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/lane.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/staticfor.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/uvector_11.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/cloned_ptr.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/barrier.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/matrix2x2.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/matrix4x4.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/threadpool.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/parallelfor.h
Examining data/wsclean-2.10.1/aocommon/include/aocommon/banddata.h
Examining data/wsclean-2.10.1/fftwmanager.h
Examining data/wsclean-2.10.1/stopwatch.cpp
Examining data/wsclean-2.10.1/system.cpp
Examining data/wsclean-2.10.1/system.h
Examining data/wsclean-2.10.1/image.h
Examining data/wsclean-2.10.1/imageweights.cpp
Examining data/wsclean-2.10.1/ndppp.h
Examining data/wsclean-2.10.1/serialostream.h
Examining data/wsclean-2.10.1/tests/testbaselinedependentaveraging.cpp
Examining data/wsclean-2.10.1/tests/testclean.cpp
Examining data/wsclean-2.10.1/tests/testhmatrix4x4.cpp
Examining data/wsclean-2.10.1/tests/testradeccoord.cpp
Examining data/wsclean-2.10.1/tests/testimage.cpp
Examining data/wsclean-2.10.1/tests/testpolynomialfitter.cpp
Examining data/wsclean-2.10.1/tests/testparsetreader.cpp
Examining data/wsclean-2.10.1/tests/testgaussianfitter.cpp
Examining data/wsclean-2.10.1/tests/testpolynomialchannelfitter.cpp
Examining data/wsclean-2.10.1/tests/testcomponentlist.cpp
Examining data/wsclean-2.10.1/tests/testfitsdateobstime.cpp
Examining data/wsclean-2.10.1/tests/testfluxdensity.cpp
Examining data/wsclean-2.10.1/tests/test.cpp
Examining data/wsclean-2.10.1/tests/testimageset.cpp
Examining data/wsclean-2.10.1/tests/testserialization.cpp
Examining data/wsclean-2.10.1/polynomialchannelfitter.cpp
Examining data/wsclean-2.10.1/wsclean/wscleansettings.cpp
Examining data/wsclean-2.10.1/wsclean/imagefilename.h
Examining data/wsclean-2.10.1/wsclean/commandline.h
Examining data/wsclean-2.10.1/wsclean/wsmsgridder.h
Examining data/wsclean-2.10.1/wsclean/imagingtable.cpp
Examining data/wsclean-2.10.1/wsclean/measurementsetgridder.h
Examining data/wsclean-2.10.1/wsclean/msgridderbase.h
Examining data/wsclean-2.10.1/wsclean/gridmodeenum.h
Examining data/wsclean-2.10.1/wsclean/griddingresult.h
Examining data/wsclean-2.10.1/wsclean/wscleansettings.h
Examining data/wsclean-2.10.1/wsclean/imagebufferallocator.h
Examining data/wsclean-2.10.1/wsclean/logger.cpp
Examining data/wsclean-2.10.1/wsclean/wscfitswriter.h
Examining data/wsclean-2.10.1/wsclean/primarybeam.cpp
Examining data/wsclean-2.10.1/wsclean/imageweightcache.h
Examining data/wsclean-2.10.1/wsclean/smallinversionoptimization.h
Examining data/wsclean-2.10.1/wsclean/wsclean.h
Examining data/wsclean-2.10.1/wsclean/directmsgridder.h
Examining data/wsclean-2.10.1/wsclean/logger.h
Examining data/wsclean-2.10.1/wsclean/wsclean.cpp
Examining data/wsclean-2.10.1/wsclean/cachedimageset.h
Examining data/wsclean-2.10.1/wsclean/wstackinggridder.h
Examining data/wsclean-2.10.1/wsclean/msgridderbase.cpp
Examining data/wsclean-2.10.1/wsclean/observationinfo.h
Examining data/wsclean-2.10.1/wsclean/imageoperations.h
Examining data/wsclean-2.10.1/wsclean/unavailablegridder.h
Examining data/wsclean-2.10.1/wsclean/directmsgridder.cpp
Examining data/wsclean-2.10.1/wsclean/examples/wsuvbinning.cpp
Examining data/wsclean-2.10.1/wsclean/examples/wspredictionexample.cpp
Examining data/wsclean-2.10.1/wsclean/examples/wsuvbinningexample.cpp
Examining data/wsclean-2.10.1/wsclean/binneduvoutput.h
Examining data/wsclean-2.10.1/wsclean/wstackinggridder.cpp
Examining data/wsclean-2.10.1/wsclean/commandline.cpp
Examining data/wsclean-2.10.1/wsclean/outputchannelinfo.h
Examining data/wsclean-2.10.1/wsclean/primarybeamimageset.h
Examining data/wsclean-2.10.1/wsclean/primarybeam.h
Examining data/wsclean-2.10.1/wsclean/wscfitswriter.cpp
Examining data/wsclean-2.10.1/wsclean/observationinfo.cpp
Examining data/wsclean-2.10.1/wsclean/wsmsgridder.cpp
Examining data/wsclean-2.10.1/wsclean/imagingtable.h
Examining data/wsclean-2.10.1/wsclean/imageoperations.cpp
Examining data/wsclean-2.10.1/multiscale/mscaleexample.cpp
Examining data/wsclean-2.10.1/multiscale/multiscalealgorithm.cpp
Examining data/wsclean-2.10.1/multiscale/multiscaletransforms.cpp
Examining data/wsclean-2.10.1/multiscale/multiscaletransforms.h
Examining data/wsclean-2.10.1/multiscale/multiscalealgorithm.h
Examining data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp
Examining data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.h
Examining data/wsclean-2.10.1/interface/wscleaninterface.cpp
Examining data/wsclean-2.10.1/interface/wscleaninterface.h
Examining data/wsclean-2.10.1/interface/_wsclean.c
Examining data/wsclean-2.10.1/interface/imaginginterface.h
Examining data/wsclean-2.10.1/msproviders/contiguousms.cpp
Examining data/wsclean-2.10.1/msproviders/msprovider.cpp
Examining data/wsclean-2.10.1/msproviders/synchronizedms.cpp
Examining data/wsclean-2.10.1/msproviders/msdatadescription.h
Examining data/wsclean-2.10.1/msproviders/partitionedms.cpp
Examining data/wsclean-2.10.1/msproviders/noisemsrowprovider.h
Examining data/wsclean-2.10.1/msproviders/contiguousms.h
Examining data/wsclean-2.10.1/msproviders/directmsrowprovider.h
Examining data/wsclean-2.10.1/msproviders/synchronizedms.h
Examining data/wsclean-2.10.1/msproviders/msdatadescription.cpp
Examining data/wsclean-2.10.1/msproviders/averagingmsrowprovider.h
Examining data/wsclean-2.10.1/msproviders/msprovider.h
Examining data/wsclean-2.10.1/msproviders/msrowprovider.h
Examining data/wsclean-2.10.1/msproviders/partitionedms.h
Examining data/wsclean-2.10.1/msproviders/timestepbuffer.h
Examining data/wsclean-2.10.1/msproviders/directmsrowprovider.cpp
Examining data/wsclean-2.10.1/msproviders/msrowprovider.cpp
Examining data/wsclean-2.10.1/msproviders/averagingmsrowprovider.cpp
Examining data/wsclean-2.10.1/rmsimage.cpp
Examining data/wsclean-2.10.1/fftresampler.h
Examining data/wsclean-2.10.1/parsetreader.cpp
Examining data/wsclean-2.10.1/gaussianfitter.h
Examining data/wsclean-2.10.1/fftconvolver.cpp
Examining data/wsclean-2.10.1/wgridder/threading.h
Examining data/wsclean-2.10.1/wgridder/bufferedmsgridder.cpp
Examining data/wsclean-2.10.1/wgridder/bufferedmsgridder.h
Examining data/wsclean-2.10.1/wgridder/wgriddinggridder_simple.h
Examining data/wsclean-2.10.1/wgridder/gridder_cxx.h
Examining data/wsclean-2.10.1/wgridder/wgriddinggridder_simple.cpp
Examining data/wsclean-2.10.1/modelrenderer.h
Examining data/wsclean-2.10.1/fftconvolver.h
Examining data/wsclean-2.10.1/dftpredictionalgorithm.cpp
Examining data/wsclean-2.10.1/casamaskreader.h
Examining data/wsclean-2.10.1/fitsreader.cpp
Examining data/wsclean-2.10.1/units/fluxdensity.h
Examining data/wsclean-2.10.1/units/angle.h
Examining data/wsclean-2.10.1/units/radeccoord.h
Examining data/wsclean-2.10.1/deconvolution/paralleldeconvolution.h
Examining data/wsclean-2.10.1/deconvolution/genericclean.cpp
Examining data/wsclean-2.10.1/deconvolution/simpleclean.cpp
Examining data/wsclean-2.10.1/deconvolution/deconvolutionalgorithm.h
Examining data/wsclean-2.10.1/deconvolution/deconvolutionalgorithm.cpp
Examining data/wsclean-2.10.1/deconvolution/subminorloop.h
Examining data/wsclean-2.10.1/deconvolution/componentlist.cpp
Examining data/wsclean-2.10.1/deconvolution/spectralfitter.h
Examining data/wsclean-2.10.1/deconvolution/spectralfitter.cpp
Examining data/wsclean-2.10.1/deconvolution/moresane.h
Examining data/wsclean-2.10.1/deconvolution/spectralimagefitter.h
Examining data/wsclean-2.10.1/deconvolution/lsdeconvolution.h
Examining data/wsclean-2.10.1/deconvolution/lsdeconvolution.cpp
Examining data/wsclean-2.10.1/deconvolution/paralleldeconvolution.cpp
Examining data/wsclean-2.10.1/deconvolution/imageset.cpp
Examining data/wsclean-2.10.1/deconvolution/imageset.h
Examining data/wsclean-2.10.1/deconvolution/moresane.cpp
Examining data/wsclean-2.10.1/deconvolution/deconvolution.cpp
Examining data/wsclean-2.10.1/deconvolution/subdivision.h
Examining data/wsclean-2.10.1/deconvolution/componentlist.h
Examining data/wsclean-2.10.1/deconvolution/subminorloop.cpp
Examining data/wsclean-2.10.1/deconvolution/iuwtdeconvolution.h
Examining data/wsclean-2.10.1/deconvolution/simpleclean.h
Examining data/wsclean-2.10.1/deconvolution/genericclean.h
Examining data/wsclean-2.10.1/deconvolution/controllablelog.h
Examining data/wsclean-2.10.1/deconvolution/deconvolution.h
Examining data/wsclean-2.10.1/buffered_lane.h
Examining data/wsclean-2.10.1/weightmode.h
Examining data/wsclean-2.10.1/casamaskreader.cpp
Examining data/wsclean-2.10.1/multibanddata.cpp
Examining data/wsclean-2.10.1/image.cpp
Examining data/wsclean-2.10.1/scheduling/griddingresult.h
Examining data/wsclean-2.10.1/scheduling/griddingtaskmanager.h
Examining data/wsclean-2.10.1/scheduling/threadedscheduler.h
Examining data/wsclean-2.10.1/scheduling/griddingtaskmanager.cpp
Examining data/wsclean-2.10.1/scheduling/mpischeduler.h
Examining data/wsclean-2.10.1/scheduling/metadatacache.h
Examining data/wsclean-2.10.1/scheduling/griddingtask.h
Examining data/wsclean-2.10.1/scheduling/metadatacache.cpp
Examining data/wsclean-2.10.1/scheduling/griddingresult.cpp
Examining data/wsclean-2.10.1/scheduling/threadedscheduler.cpp
Examining data/wsclean-2.10.1/scheduling/griddingtask.cpp
Examining data/wsclean-2.10.1/scheduling/mpischeduler.cpp
Examining data/wsclean-2.10.1/serialistream.h
Examining data/wsclean-2.10.1/hmatrix4x4.h
Examining data/wsclean-2.10.1/multibanddata.h
Examining data/wsclean-2.10.1/fitsreader.h
Examining data/wsclean-2.10.1/numberlist.h
Examining data/wsclean-2.10.1/polynomialfitter.h
Examining data/wsclean-2.10.1/fftresampler.cpp
Examining data/wsclean-2.10.1/fitswriter.h
Examining data/wsclean-2.10.1/progressbar.h
Examining data/wsclean-2.10.1/lofar/lmspredicter.h
Examining data/wsclean-2.10.1/lofar/lbeamevaluator.h
Examining data/wsclean-2.10.1/lofar/lmspredicter.cpp
Examining data/wsclean-2.10.1/lofar/lbeamimagemaker.h
Examining data/wsclean-2.10.1/lofar/lbeamevaluator.cpp
Examining data/wsclean-2.10.1/lofar/lbeamimagemaker.cpp
Examining data/wsclean-2.10.1/lofar/lofarbeamkeywords.h
Examining data/wsclean-2.10.1/fitsiochecker.h
Examining data/wsclean-2.10.1/wscleanmain.cpp
Examining data/wsclean-2.10.1/progressbar.cpp
Examining data/wsclean-2.10.1/iuwt/iuwtdeconvolutionalgorithm.h
Examining data/wsclean-2.10.1/iuwt/iuwtdecomposition.cpp
Examining data/wsclean-2.10.1/iuwt/iuwtmask.h
Examining data/wsclean-2.10.1/iuwt/iuwtdecomposition.h
Examining data/wsclean-2.10.1/iuwt/imageanalysis.cpp
Examining data/wsclean-2.10.1/iuwt/iuwtdeconvolutionalgorithm.cpp
Examining data/wsclean-2.10.1/iuwt/iuwtmask.cpp
Examining data/wsclean-2.10.1/iuwt/imageanalysis.h
Examining data/wsclean-2.10.1/rmsimage.h
Examining data/wsclean-2.10.1/fftwmanager.cpp
Examining data/wsclean-2.10.1/threadpool.h
Examining data/wsclean-2.10.1/msselection.h
Examining data/wsclean-2.10.1/windowfunction.h
Examining data/wsclean-2.10.1/fitsiochecker.cpp
Examining data/wsclean-2.10.1/gaussianfitter.cpp
Examining data/wsclean-2.10.1/idg/idgmsgridder.h
Examining data/wsclean-2.10.1/idg/dummygridder.h
Examining data/wsclean-2.10.1/idg/averagebeam.h
Examining data/wsclean-2.10.1/idg/interface.h
Examining data/wsclean-2.10.1/idg/idgmsgridder.cpp
Examining data/wsclean-2.10.1/idg/averagebeam.cpp
Examining data/wsclean-2.10.1/idg/idgconfiguration.h
Examining data/wsclean-2.10.1/fitswriter.cpp
Examining data/wsclean-2.10.1/stopwatch.h
Examining data/wsclean-2.10.1/modelrenderer.cpp

FINAL RESULTS:

data/wsclean-2.10.1/application.h:21:5:  [4] (shell) execl:
  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.
				execl("/bin/sh", "sh", "-c", commandLine.c_str(), NULL);
data/wsclean-2.10.1/deconvolution/moresane.cpp:61:4:  [4] (shell) execl:
  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.
			execl("/bin/sh", "sh", "-c", commandLine.str().c_str(), NULL);
data/wsclean-2.10.1/idg/idgmsgridder.cpp:169:31:  [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.
		ATermBase::CoordinateSystem system;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:171: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.dl = -_bufferset->get_subgrid_pixelsize();
data/wsclean-2.10.1/idg/idgmsgridder.cpp:172: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.dm = -_bufferset->get_subgrid_pixelsize();
data/wsclean-2.10.1/idg/idgmsgridder.cpp:173: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.phaseCentreDL = PhaseCentreDL() - 0.5*system.dl;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:173:48:  [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.phaseCentreDL = PhaseCentreDL() - 0.5*system.dl;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:174: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.phaseCentreDM = PhaseCentreDM() + 0.5*system.dm;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:174:48:  [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.phaseCentreDM = PhaseCentreDM() + 0.5*system.dm;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:175: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.width = _bufferset->get_subgridsize();
data/wsclean-2.10.1/idg/idgmsgridder.cpp:176: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.height = system.width;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:176:19:  [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.height = system.width;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:177: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.maxSupport = _settings.atermKernelSize;
data/wsclean-2.10.1/idg/idgmsgridder.cpp:178: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.ra = PhaseCentreRA();
data/wsclean-2.10.1/idg/idgmsgridder.cpp:179: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.dec = PhaseCentreDec();
data/wsclean-2.10.1/idg/idgmsgridder.cpp:182:69:  [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.
			std::unique_ptr<ATermConfig> config(new ATermConfig(nr_stations, system, _settings));
data/wsclean-2.10.1/idg/idgmsgridder.cpp:192:65:  [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.
					std::unique_ptr<LofarBeamTerm> beam(new LofarBeamTerm(*ms, system, _settings.dataColumnName));
data/wsclean-2.10.1/idg/idgmsgridder.cpp:199:61:  [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.
					std::unique_ptr<MWABeamTerm> beam(new MWABeamTerm(*ms, system));
data/wsclean-2.10.1/idg/idgmsgridder.cpp:206:57:  [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.
					std::unique_ptr<DishATerm> beam(new DishATerm(*ms, system));
data/wsclean-2.10.1/system.cpp:27:15:  [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.
	int status = system(command.c_str());
data/wsclean-2.10.1/application.h:16:13:  [2] (race) vfork:
  On some old systems, vfork() permits race conditions, and it's very
  difficult to use correctly (CWE-362). Use fork() instead.
		int pid = vfork();
data/wsclean-2.10.1/deconvolution/deconvolutionalgorithm.cpp:67: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(destPtr, srcPtr, newWidth * sizeof(double));
data/wsclean-2.10.1/deconvolution/imageset.h:287: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(lhs, rhs, sizeof(double) * _width * _height);
data/wsclean-2.10.1/deconvolution/imageset.h:292: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(lhs, rhs.data(), sizeof(double) * _width * _height);
data/wsclean-2.10.1/deconvolution/moresane.cpp:56:12:  [2] (race) vfork:
  On some old systems, vfork() permits race conditions, and it's very
  difficult to use correctly (CWE-362). Use fork() instead.
	int pid = vfork();
data/wsclean-2.10.1/deconvolution/spectralimagefitter.h:26: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(image, newImg, _width*_height*sizeof(double));
data/wsclean-2.10.1/distributed/wsclean-mp.cpp:31: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 hostname[256];
data/wsclean-2.10.1/fftconvolver.cpp:125: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(tempData, image, imgSize * sizeof(double));
data/wsclean-2.10.1/fftconvolver.cpp:128: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(tempData, kernel, imgSize * sizeof(double));
data/wsclean-2.10.1/fftconvolver.cpp:136: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(image, tempData, imgSize * sizeof(double));
data/wsclean-2.10.1/fitsiochecker.cpp:12: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 err_text[31];
data/wsclean-2.10.1/fitsiochecker.cpp:14: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 err_msg[81];
data/wsclean-2.10.1/fitsiochecker.cpp:28: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 err_text[31];
data/wsclean-2.10.1/fitsiochecker.cpp:30: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 err_msg[81];
data/wsclean-2.10.1/fitsreader.cpp:115: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 keyStr[256];
data/wsclean-2.10.1/fitsreader.cpp:128: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 keyStr[256];
data/wsclean-2.10.1/fitsreader.cpp:137: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 valueStr[256], commentStr[256];
data/wsclean-2.10.1/fitsreader.cpp:360: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 keyCard[256];
data/wsclean-2.10.1/fitswriter.cpp:140: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
data/wsclean-2.10.1/fitswriter.cpp:214: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 dateStr[40];
data/wsclean-2.10.1/fitswriter.cpp:215:8:  [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.
  std::sprintf(dateStr, "%d-%02d-%02dT%02d:%02d:%02d.%01d", year, month, day, hour, min, sec, deciSec);
data/wsclean-2.10.1/gaussianfitter.cpp:201: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(&smallImage[(y-startY)*boxWidth], &image[y*width + startX], sizeof(double)*boxWidth);
data/wsclean-2.10.1/gaussianfitter.cpp:214: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(&smallImage[(y-startY)*boxWidth], &image[y*width + startX], sizeof(double)*boxWidth);
data/wsclean-2.10.1/gaussianfitter.cpp:445: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(&smallImage[(y-yStart)*boxWidth], &image[y*width + xStart], sizeof(double)*boxWidth);
data/wsclean-2.10.1/image.cpp:158: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(&output[(y-startY)*outWidth], &input[y*inWidth + startX], outWidth*sizeof(value_type));
data/wsclean-2.10.1/image.cpp:184: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(&output[y*outWidth + startX], &input[(y-startY)*inWidth], inWidth*sizeof(value_type));
data/wsclean-2.10.1/iuwt/iuwtdecomposition.cpp:36:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(i0.data(), i1.data(), sizeof(double)*_width*_height);
data/wsclean-2.10.1/iuwt/iuwtdecomposition.h:64:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(input.data(), tmp.data(), sizeof(double)*_width*_height);
data/wsclean-2.10.1/iuwt/iuwtdecomposition.h:104:5:  [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(i0.data(), i1.data(), sizeof(double)*_width*_height);
data/wsclean-2.10.1/iuwt/iuwtdeconvolutionalgorithm.cpp:710:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(scratch.data(), (*trimmedStructureModel)[i], (y2-y1)*(x2-x1)*sizeof(double));
data/wsclean-2.10.1/iuwt/iuwtdeconvolutionalgorithm.cpp:712:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(structureModelFull[i], scratch.data(), width*height*sizeof(double));
data/wsclean-2.10.1/model/measurement.h:28:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(_fluxDensities, source._fluxDensities, sizeof(long double)*4);
data/wsclean-2.10.1/model/measurement.h:29:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(_fluxDensityStddevs, source._fluxDensityStddevs, sizeof(long double)*4);
data/wsclean-2.10.1/model/measurement.h:36:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(_fluxDensities, source._fluxDensities, sizeof(long double)*4);
data/wsclean-2.10.1/model/measurement.h:37:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(_fluxDensityStddevs, source._fluxDensityStddevs, sizeof(long double)*4);
data/wsclean-2.10.1/msproviders/averagingmsrowprovider.cpp:190: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(data.data(), _currentData.data(), bufferSize*sizeof(std::complex<float>));
data/wsclean-2.10.1/msproviders/averagingmsrowprovider.cpp:191: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(flags.data(), _currentFlags.data(), bufferSize*sizeof(bool));
data/wsclean-2.10.1/msproviders/averagingmsrowprovider.cpp:192: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(weights.data(), _currentWeights.data(), bufferSize*sizeof(float));
data/wsclean-2.10.1/msproviders/averagingmsrowprovider.cpp:206: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(model.data(), _currentModel.data(), bufferSize*sizeof(std::complex<float>));
data/wsclean-2.10.1/msproviders/contiguousms.cpp:17:2:  [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).
	open();
data/wsclean-2.10.1/msproviders/contiguousms.cpp:20: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).
void ContiguousMS::open()
data/wsclean-2.10.1/msproviders/contiguousms.h:71:7:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	void open();
data/wsclean-2.10.1/msproviders/partitionedms.cpp:53:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	_dataFile.open(partPrefix+".tmp", std::ios::in);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:62:9:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		_fd = open((partPrefix+"-m.tmp").c_str(), O_RDWR);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:79: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).
	_weightFile.open(partPrefix+"-w.tmp", std::ios::in);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:195: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(reinterpret_cast<char*>(buffer), _modelFileMap + rowLength*_currentRow, rowLength);
data/wsclean-2.10.1/multiscale/multiscalealgorithm.cpp:179:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(doubleConvolvedPSFs[i].data(), psf, _width*_height*sizeof(double));
data/wsclean-2.10.1/multiscale/multiscalealgorithm.cpp:184:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(individualConvolvedImages[i], dirtySet[i], _width*_height*sizeof(double));
data/wsclean-2.10.1/multiscale/multiscalealgorithm.cpp:401: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(convolvedPSFs[scaleIndex].data(), psf, _width*_height*sizeof(double));
data/wsclean-2.10.1/multiscale/multiscalealgorithm.cpp:428:5:  [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(convolvedPSFs[scaleIndex].data(), psf, _width*_height*sizeof(double));
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:184: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(imageData[nextThread]->data(), image, dataSize*sizeof(double));
data/wsclean-2.10.1/mwa/beam2016implementation.cpp:674:26:  [2] (integer) atol:
  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).
			m_freq_list.push_back(atol(szFreq));
data/wsclean-2.10.1/mwa/mwabeam.cpp:86:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(&beamImages[p][0], scratch.data(), sizeof(double)*_width*_height);
data/wsclean-2.10.1/numberlist.h:21:14:  [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 num = atoi(idStr.c_str());
data/wsclean-2.10.1/numberlist.h:25:13:  [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 num = atoi(temp.c_str());
data/wsclean-2.10.1/system.h:47:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
		char buffer[1024];
data/wsclean-2.10.1/tests/testfitsdateobstime.cpp:30: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 dateStrA[40], dateStrB[40];
data/wsclean-2.10.1/tests/testfitsdateobstime.cpp:31:8:  [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.
  std::sprintf(dateStrA, "%02d:%02d:%02d.%01d", hour, min, sec, dsec);
data/wsclean-2.10.1/tests/testfitsdateobstime.cpp:36:8:  [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.
  std::sprintf(dateStrB, "%02d:%02d:%02d.%01d", hour, min, sec, dsec);
data/wsclean-2.10.1/wsclean/commandline.cpp:831:28:  [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).
			settings.intervalsOut = atoi(argv[argi]);
data/wsclean-2.10.1/aocommon/include/aocommon/lane.h:287:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  bool read(value_type &destination) {
data/wsclean-2.10.1/aocommon/include/aocommon/lane.h:305:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  size_t read(value_type *destinations, size_t n) {
data/wsclean-2.10.1/aocommon/include/aocommon/uvector.h:1123: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.
         std::equal(lhs.begin(), lhs.end(), rhs.begin());
data/wsclean-2.10.1/aocommon/include/aocommon/uvector_11.h:1157:40:  [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 lhs.size()==rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
data/wsclean-2.10.1/aterms/lofarbeamterm.cpp:167:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_lane->read(job_id))
data/wsclean-2.10.1/buffered_lane.h:99:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(Tp& element)
data/wsclean-2.10.1/buffered_lane.h:103:32:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			_buffer_fill_count = _lane->read(_buffer, _buffer_size);
data/wsclean-2.10.1/fftresampler.cpp:39:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_tasks.read(task))
data/wsclean-2.10.1/lofar/lmspredicter.cpp:158:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			_availableBufferLane.read(rowData);
data/wsclean-2.10.1/lofar/lmspredicter.cpp:205:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_workLane.read(rowData))
data/wsclean-2.10.1/lofar/lmspredicter.h:63:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return _bufferedOutputLane.read(data);
data/wsclean-2.10.1/model/model.cpp:15:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Model::read(const char* filename)
data/wsclean-2.10.1/model/model.h:21:42:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		explicit Model(const char *filename) { read(filename); }
data/wsclean-2.10.1/model/model.h:22:49:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		explicit Model(const std::string& filename) { read(filename.c_str()); }
data/wsclean-2.10.1/model/model.h:189:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		void read(const char* filename);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:47:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_metaFile.read(reinterpret_cast<char*>(&_metaHeader), sizeof(MetaHeader));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:49:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_metaFile.read(msPath.data(), _metaHeader.filenameLength);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:56:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_dataFile.read(reinterpret_cast<char*>(&_partHeader), sizeof(PartHeader));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:142:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	record.read(_metaFile);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:156:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	record.read(_metaFile);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:184:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_dataFile.read(reinterpret_cast<char*>(buffer), _partHeader.channelCount * _polarizationCountInFile * sizeof(std::complex<float>));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:228:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_imagingWeightsFile->read(reinterpret_cast<char*>(_imagingWeightBuffer.data()), _partHeader.channelCount * _polarizationCountInFile * sizeof(float));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:243:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_weightFile.read(reinterpret_cast<char*>(displacedBuffer), _partHeader.channelCount * _polarizationCountInFile * sizeof(float));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:252:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	_weightFile.read(reinterpret_cast<char*>(buffer), _partHeader.channelCount * _polarizationCountInFile * sizeof(float));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:569:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		metaFile.read(reinterpret_cast<char*>(&metaHeader), sizeof(MetaHeader));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:571:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		metaFile.read(msPath.data(), metaHeader.filenameLength);
data/wsclean-2.10.1/msproviders/partitionedms.cpp:579:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	firstDataFile.read(reinterpret_cast<char*>(&firstPartHeader), sizeof(PartHeader));
data/wsclean-2.10.1/msproviders/partitionedms.cpp:657:32:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
								modelFiles[fileIndex]->read(reinterpret_cast<char*>(modelDataBuffer.data()), (partEndCh - partStartCh) * polarizationsPerFile * sizeof(std::complex<float>));
data/wsclean-2.10.1/msproviders/partitionedms.h:174:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		void read(std::istream& str)
data/wsclean-2.10.1/msproviders/partitionedms.h:176:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&u), sizeof(double));
data/wsclean-2.10.1/msproviders/partitionedms.h:177:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&v), sizeof(double));
data/wsclean-2.10.1/msproviders/partitionedms.h:178:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&w), sizeof(double));
data/wsclean-2.10.1/msproviders/partitionedms.h:179:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&time), sizeof(double));
data/wsclean-2.10.1/msproviders/partitionedms.h:180:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&antenna1), sizeof(uint16_t));
data/wsclean-2.10.1/msproviders/partitionedms.h:181:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&antenna2), sizeof(uint16_t));
data/wsclean-2.10.1/msproviders/partitionedms.h:182:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&dataDescId), sizeof(uint16_t));
data/wsclean-2.10.1/msproviders/partitionedms.h:183:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			str.read(reinterpret_cast<char*>(&fieldId), sizeof(uint16_t));
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:62:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:92:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:102:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:139:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:149:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:204:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.cpp:220:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		_resultLanes[thr]->read(result);
data/wsclean-2.10.1/multiscale/threadeddeconvolutiontools.h:105:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		while(taskLane->read(task))
data/wsclean-2.10.1/mwa/beam2016implementation.cpp:613:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	modes.read( data.data(), PredType::NATIVE_FLOAT, memspace, modes_dataspace );
data/wsclean-2.10.1/parsetreader.cpp:15:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(stream);
data/wsclean-2.10.1/parsetreader.cpp:20:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(stream);
data/wsclean-2.10.1/parsetreader.cpp:23:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void ParsetReader::read(std::istream& stream)
data/wsclean-2.10.1/parsetreader.h:50:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(std::istream& stream);
data/wsclean-2.10.1/scheduling/mpischeduler.cpp:95:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_taskList.read(taskPair))
data/wsclean-2.10.1/scheduling/threadedscheduler.cpp:42:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_taskList.read(taskPair))
data/wsclean-2.10.1/serialistream.h:42:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		value = (T) read<uint64_t>();
data/wsclean-2.10.1/serialistream.h:48:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<uint64_t>();
data/wsclean-2.10.1/serialistream.h:54:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		value = (T) read<uint32_t>();
data/wsclean-2.10.1/serialistream.h:60:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<uint32_t>();
data/wsclean-2.10.1/serialistream.h:66:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		value = (T) read<uint16_t>();
data/wsclean-2.10.1/serialistream.h:72:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<uint16_t>();
data/wsclean-2.10.1/serialistream.h:78:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		value = (T) read<uint8_t>();
data/wsclean-2.10.1/serialistream.h:84:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<uint8_t>();
data/wsclean-2.10.1/serialistream.h:100:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:105:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<float>();
data/wsclean-2.10.1/serialistream.h:110:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:115:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<double>();
data/wsclean-2.10.1/serialistream.h:120:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:125:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<long double>();
data/wsclean-2.10.1/serialistream.h:130:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:135:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<std::complex<float>>();
data/wsclean-2.10.1/serialistream.h:140:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:145:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<std::complex<double>>();
data/wsclean-2.10.1/serialistream.h:150:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read(value);
data/wsclean-2.10.1/serialistream.h:155:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return read<long double>();
data/wsclean-2.10.1/serialistream.h:232:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	SerialIStream& read(T& value)
data/wsclean-2.10.1/serialistream.h:239:4:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	T read()
data/wsclean-2.10.1/wsclean/directmsgridder.cpp:134:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(_inversionLane.read(sample))
data/wsclean-2.10.1/wsclean/wsmsgridder.cpp:215:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(buffer.read(sampleData))
data/wsclean-2.10.1/wsclean/wsmsgridder.cpp:295:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(inputLane->read(item))
data/wsclean-2.10.1/wsclean/wsmsgridder.cpp:307:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(buffer.read(workItem))
data/wsclean-2.10.1/wsclean/wsmsgridder.h:73:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			while(workLane->read(workItem))

ANALYSIS SUMMARY:

Hits = 159
Lines analyzed = 52019 in approximately 1.30 seconds (39896 lines/second)
Physical Source Lines of Code (SLOC) = 41855
Hits@level = [0]   1 [1]  79 [2]  60 [3]   0 [4]  20 [5]   0
Hits@level+ = [0+] 160 [1+] 159 [2+]  80 [3+]  20 [4+]  20 [5+]   0
Hits/KSLOC@level+ = [0+] 3.82272 [1+] 3.79883 [2+] 1.91136 [3+] 0.47784 [4+] 0.47784 [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.