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/4ti2-1.6.9+ds/src/4ti2/4ti2.h
Examining data/4ti2-1.6.9+ds/src/4ti2/4ti2API.cpp
Examining data/4ti2-1.6.9+ds/src/4ti2/4ti2xx.h
Examining data/4ti2-1.6.9+ds/src/banner.h
Examining data/4ti2-1.6.9+ds/src/groebner/4ti2API.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Algorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Algorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/BasicCompletion.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BasicCompletion.h
Examining data/4ti2-1.6.9+ds/src/groebner/BasicGeneration.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BasicGeneration.h
Examining data/4ti2-1.6.9+ds/src/groebner/BasicOptions.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BasicOptions.h
Examining data/4ti2-1.6.9+ds/src/groebner/BasicReduction.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BasicReduction.h
Examining data/4ti2-1.6.9+ds/src/groebner/Binomial.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Binomial.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialArray.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialArray.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialArrayStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialArrayStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialCollection.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialCollection.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialFactory.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialFactory.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialSetStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialSetStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BinomialStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/BitSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/BitSetStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/BitSetStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/Bounded.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Bounded.h
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitImplementation.h
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitMatrixAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitOptions.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitOptions.h
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitSupportAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitsAPI.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/CircuitsAPI.h
Examining data/4ti2-1.6.9+ds/src/groebner/Completion.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Completion.h
Examining data/4ti2-1.6.9+ds/src/groebner/DataType.h
Examining data/4ti2-1.6.9+ds/src/groebner/Debug.h
Examining data/4ti2-1.6.9+ds/src/groebner/DiagonalAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/DiagonalAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/EliminateAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/EliminateAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/Euclidean.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Euclidean.h
Examining data/4ti2-1.6.9+ds/src/groebner/Extract.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Extract.h
Examining data/4ti2-1.6.9+ds/src/groebner/Feasible.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Feasible.h
Examining data/4ti2-1.6.9+ds/src/groebner/FeasibleStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/FeasibleStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/Filter.h
Examining data/4ti2-1.6.9+ds/src/groebner/FilterReduction.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/FilterReduction.h
Examining data/4ti2-1.6.9+ds/src/groebner/FlipCompletion.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/FlipCompletion.h
Examining data/4ti2-1.6.9+ds/src/groebner/GeneratingSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/GeneratingSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/Generation.h
Examining data/4ti2-1.6.9+ds/src/groebner/Globals.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Globals.h
Examining data/4ti2-1.6.9+ds/src/groebner/Grading.h
Examining data/4ti2-1.6.9+ds/src/groebner/GroebnerBasis.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/GroebnerBasis.h
Examining data/4ti2-1.6.9+ds/src/groebner/HermiteAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/HermiteAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/HybridGenSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/HybridGenSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/Index.h
Examining data/4ti2-1.6.9+ds/src/groebner/IndexBinomialSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/IndexSetConverter.h
Examining data/4ti2-1.6.9+ds/src/groebner/LatticeBasis.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/LatticeBasis.h
Examining data/4ti2-1.6.9+ds/src/groebner/LongDenseIndexSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/LongDenseIndexSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/LongDenseIndexSetStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/LongDenseIndexSetStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/Markov.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Markov.h
Examining data/4ti2-1.6.9+ds/src/groebner/MaxMinGenSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/MaxMinGenSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/Minimize.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Minimize.h
Examining data/4ti2-1.6.9+ds/src/groebner/MinimizeOptions.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/MinimizeOptions.h
Examining data/4ti2-1.6.9+ds/src/groebner/OnesReduction.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/OnesReduction.h
Examining data/4ti2-1.6.9+ds/src/groebner/OnesTree.h
Examining data/4ti2-1.6.9+ds/src/groebner/Optimise.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Optimise.h
Examining data/4ti2-1.6.9+ds/src/groebner/Options.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Options.h
Examining data/4ti2-1.6.9+ds/src/groebner/OrderedCompletion.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/OrderedCompletion.h
Examining data/4ti2-1.6.9+ds/src/groebner/Permutation.h
Examining data/4ti2-1.6.9+ds/src/groebner/ProjectLiftGenSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/ProjectLiftGenSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.h
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveConsOrder.h
Examining data/4ti2-1.6.9+ds/src/groebner/QSolveVariant.h
Examining data/4ti2-1.6.9+ds/src/groebner/RayAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/RayAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/RayImplementation.h
Examining data/4ti2-1.6.9+ds/src/groebner/RayMatrixAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/RaySupportAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/RaysAPI.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/RaysAPI.h
Examining data/4ti2-1.6.9+ds/src/groebner/Reduction.h
Examining data/4ti2-1.6.9+ds/src/groebner/SaturationGenSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/SaturationGenSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/ShortDenseIndexSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/ShortDenseIndexSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/ShortDenseIndexSetStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/ShortDenseIndexSetStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/SignPattern.h
Examining data/4ti2-1.6.9+ds/src/groebner/Size.h
Examining data/4ti2-1.6.9+ds/src/groebner/Statistics.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Statistics.h
Examining data/4ti2-1.6.9+ds/src/groebner/SupportTree.h
Examining data/4ti2-1.6.9+ds/src/groebner/SyzygyCompletion.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/SyzygyCompletion.h
Examining data/4ti2-1.6.9+ds/src/groebner/SyzygyGeneration.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/SyzygyGeneration.h
Examining data/4ti2-1.6.9+ds/src/groebner/TermOrder.h
Examining data/4ti2-1.6.9+ds/src/groebner/Timer.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Timer.h
Examining data/4ti2-1.6.9+ds/src/groebner/Truncate.h
Examining data/4ti2-1.6.9+ds/src/groebner/Truncated.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Vector.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/Vector.h
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArray.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArray.h
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArrayAPI.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArrayAPI.h
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArrayStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/VectorArrayStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/VectorStream.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/VectorStream.h
Examining data/4ti2-1.6.9+ds/src/groebner/WalkAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/WalkAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/WalkOptions.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/WalkOptions.h
Examining data/4ti2-1.6.9+ds/src/groebner/Weight.h
Examining data/4ti2-1.6.9+ds/src/groebner/WeightAlgorithm.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/WeightAlgorithm.h
Examining data/4ti2-1.6.9+ds/src/groebner/WeightedBinomialSet.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/WeightedBinomialSet.h
Examining data/4ti2-1.6.9+ds/src/groebner/WeightedReduction.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/WeightedReduction.h
Examining data/4ti2-1.6.9+ds/src/groebner/circuits_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/circuits_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/groebner_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/groebner_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/markov_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/markov_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/minimize_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/minimize_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/normalform_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/normalform_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/qsolve_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/qsolve_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/rays_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/rays_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/walk_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/walk_main.h
Examining data/4ti2-1.6.9+ds/src/groebner/zbasis_main.cpp
Examining data/4ti2-1.6.9+ds/src/groebner/zbasis_main.h
Examining data/4ti2-1.6.9+ds/src/ppi/ppi.cpp
Examining data/4ti2-1.6.9+ds/src/util/genmodel.c
Examining data/4ti2-1.6.9+ds/src/util/genmodel.h
Examining data/4ti2-1.6.9+ds/src/util/genmodel_main.c
Examining data/4ti2-1.6.9+ds/src/util/gensymm.c
Examining data/4ti2-1.6.9+ds/src/util/gensymm.h
Examining data/4ti2-1.6.9+ds/src/util/gensymm_main.c
Examining data/4ti2-1.6.9+ds/src/util/myheader.h
Examining data/4ti2-1.6.9+ds/src/util/orbit.c
Examining data/4ti2-1.6.9+ds/src/util/orbit.h
Examining data/4ti2-1.6.9+ds/src/util/output.c
Examining data/4ti2-1.6.9+ds/src/util/output.h
Examining data/4ti2-1.6.9+ds/src/util/output_main.c
Examining data/4ti2-1.6.9+ds/src/util/print.c
Examining data/4ti2-1.6.9+ds/src/util/print.h
Examining data/4ti2-1.6.9+ds/src/util/vector.c
Examining data/4ti2-1.6.9+ds/src/util/vector.h
Examining data/4ti2-1.6.9+ds/src/zsolve/4ti2API.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Algorithm.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/BitSet.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/BitSet.h
Examining data/4ti2-1.6.9+ds/src/zsolve/BoundAPI.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Controller.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Exception.h
Examining data/4ti2-1.6.9+ds/src/zsolve/GraverAPI.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Heuristics.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/HilbertAPI.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Integer.h
Examining data/4ti2-1.6.9+ds/src/zsolve/Lattice.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Norms.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Options.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Options.h
Examining data/4ti2-1.6.9+ds/src/zsolve/RelAPI.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/RelAPI.h
Examining data/4ti2-1.6.9+ds/src/zsolve/Relation.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/SignAPI.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/SignAPI.h
Examining data/4ti2-1.6.9+ds/src/zsolve/Timer.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Timer.h
Examining data/4ti2-1.6.9+ds/src/zsolve/Variables.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/Vector.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/VectorArray.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/VectorArrayAPI.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp
Examining data/4ti2-1.6.9+ds/src/zsolve/main.cpp
Examining data/4ti2-1.6.9+ds/src/zsolve/zsolve.h
Examining data/4ti2-1.6.9+ds/test/qsolve/api/circuits_main.cpp
Examining data/4ti2-1.6.9+ds/test/qsolve/api/qsolve_main.cpp
Examining data/4ti2-1.6.9+ds/test/qsolve/api/rays_main.cpp
Examining data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_64.cpp
Examining data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_gmp.cpp
Examining data/4ti2-1.6.9+ds/test/zsolve/api/test_zsolve_api.cpp

FINAL RESULTS:

data/4ti2-1.6.9+ds/src/util/genmodel.c:220:3:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/genmodel.c:222:3:  [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(outFileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:146:3:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:172:3:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:443: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:446: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:451: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:453: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:458:9:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:460: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:478: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:484: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:486: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(domFileName,argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:490: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:497: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:499: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:504:9:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:506: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:523: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:530: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:532: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:537: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(symFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:551: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:556: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:564:4:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:566:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:573:4:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:575:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:577:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+2]);
data/4ti2-1.6.9+ds/src/util/output.c:585: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:593:4:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:595:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:602:4:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:604:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:606:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	  strcat(outFileName,argv[i+2]);
data/4ti2-1.6.9+ds/src/util/output.c:614: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:621: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:628: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:630:2:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	strcat(outFileName,argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:637: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(fileName,argv[argc-3]);
data/4ti2-1.6.9+ds/src/util/output.c:639: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(fileName,argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:643: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:647: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:650: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:655: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:660: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:665: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:667: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:672: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:674: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:679: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:681: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:686: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:688: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:693: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:695: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:700: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:702: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:706: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(varFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:723:8:  [4] (buffer) fscanf:
  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.
	  if (fscanf(in,"%s",s) != 1) {
data/4ti2-1.6.9+ds/src/util/output.c:735: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:746: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(fileName,argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:749: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:751: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:758:9:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:761:9:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:769: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:771: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(symFileName,argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:774: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(outFileName,symFileName);
data/4ti2-1.6.9+ds/src/util/output.c:781: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:790: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:796:9:  [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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:800:9:  [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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:811: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:814: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:824: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:827: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:832: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(fileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:833: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(groFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:836: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(costFileName,argv[argc-1]);
data/4ti2-1.6.9+ds/src/util/output.c:848: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:853: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(varFileName,fileName);
data/4ti2-1.6.9+ds/src/util/output.c:871:8:  [4] (buffer) fscanf:
  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.
	  if (fscanf(in,"%s",s) != 1) {
data/4ti2-1.6.9+ds/src/util/output.c:880: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/print.c:780: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/print.c:790: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/print.c:800: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/util/print.c:810: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(outFileName,fileName);
data/4ti2-1.6.9+ds/src/zsolve/Algorithm.hpp:669:35:  [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.
    Algorithm (LinearSystem <T> * system, Controller <T>* controller)
data/4ti2-1.6.9+ds/src/zsolve/Algorithm.hpp:675:32:  [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.
	    m_controller->log_system (system);
data/4ti2-1.6.9+ds/src/zsolve/Algorithm.hpp:680: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.
        LinearSystem <T> * homo = homogenize_linear_system (system);
data/4ti2-1.6.9+ds/src/zsolve/Controller.hpp:39:49:  [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.
    virtual void log_system (LinearSystem <T> * system) = 0;
data/4ti2-1.6.9+ds/src/zsolve/Controller.hpp:40: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.
    virtual void log_homogenized_system (LinearSystem <T> * system) = 0;
data/4ti2-1.6.9+ds/src/zsolve/Controller.hpp:41:45:  [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.
    virtual void log_lattice (Lattice <T> * system) = 0;
data/4ti2-1.6.9+ds/src/zsolve/Controller.hpp:53:46:  [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.
    virtual void save_lattice (Lattice <T> * system) = 0;
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:60:41:  [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.
    void log_system (LinearSystem <T> * system)
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:63: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.
            *m_console << "Linear system to solve:\n\n" << *system << std::endl;
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:65: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.
            *m_log << "Linear system to solve:\n\n" << *system << std::endl;
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:68:53:  [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.
    void log_homogenized_system (LinearSystem <T> * system)
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:71:87:  [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.
            *m_console << "Linear system of homogeneous equalities to solve:\n\n" << *system << std::endl;
data/4ti2-1.6.9+ds/src/zsolve/DefaultController.hpp:73:83:  [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.
            *m_log << "Linear system of homogeneous equalities to solve:\n\n" << *system << std::endl;
data/4ti2-1.6.9+ds/src/zsolve/Lattice.hpp:263:72:  [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.
template <typename T> Lattice <T>* generate_lattice (LinearSystem <T>* system)
data/4ti2-1.6.9+ds/src/zsolve/Lattice.hpp:273:44:  [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.
    Lattice <T>* result = new Lattice <T> (system);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:155:97:  [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.
    template <typename X> friend std::ostream& operator<< (std::ostream& out, LinearSystem <X>& system);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:158:86:  [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.
template <typename T> std::ostream& operator<< (std::ostream& out, LinearSystem <T>& system)
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:160: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.
    size_t vars = system.variables ();
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:161: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.
    size_t rels = system.relations ();
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:166:38:  [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.
        VariableProperty <T> & var = system.get_variable (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:170:62:  [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.
            space[i] = max <size_t> (space[i], integer_space(system.matrix () [j][i]));
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:177:30:  [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.
        Relation <T> & rel = system.get_relation (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:180: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.
        space[vars+1] = max <size_t> (space[vars+1], integer_space (system.rhs () [i]));
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:186:38:  [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.
        VariableProperty <T> & var = system.get_variable (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:196:38:  [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.
        VariableProperty <T> & var = system.get_variable (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:206:38:  [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.
        VariableProperty <T> & var = system.get_variable (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:230:29:  [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.
            const T value = system.matrix () [i][j];
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:236:30:  [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.
        Relation <T> & rel = system.get_relation (i);
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:241: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.
        const T value = system.rhs () [i];
data/4ti2-1.6.9+ds/src/zsolve/LinearSystem.hpp:337:12:  [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.
    return system;
data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp:343:40:  [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.
        algorithm = new Algorithm <T> (system, controller);
data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp:344:16:  [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.
        delete system;
data/4ti2-1.6.9+ds/src/groebner/BasicOptions.cpp:65:13:  [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, "p:qh", long_options, &option_index);
data/4ti2-1.6.9+ds/src/groebner/BasicOptions.cpp:67:13:  [3] (buffer) getopt:
  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(argc, argv, "p:qh");
data/4ti2-1.6.9+ds/src/groebner/CircuitOptions.cpp:74:13:  [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, "mso:f:p:qh",
data/4ti2-1.6.9+ds/src/groebner/CircuitOptions.cpp:77:13:  [3] (buffer) getopt:
  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(argc, argv, "mso:f:p:qh");
data/4ti2-1.6.9+ds/src/groebner/MinimizeOptions.cpp:69:13:  [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, "a:r:f:t:p:qh",
data/4ti2-1.6.9+ds/src/groebner/MinimizeOptions.cpp:72:13:  [3] (buffer) getopt:
  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(argc, argv, "a:r:f:t:p:qh");
data/4ti2-1.6.9+ds/src/groebner/Options.cpp:71:13:  [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, "g:a:m:r:f:t:p:qh",
data/4ti2-1.6.9+ds/src/groebner/Options.cpp:74:13:  [3] (buffer) getopt:
  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(argc, argv, "g:a:m:r:f:t:p:qh");
data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.cpp:182:13:  [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, "mso:f:p:qh",
data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.cpp:185:13:  [3] (buffer) getopt:
  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(argc, argv, "mso:f:p:qh");
data/4ti2-1.6.9+ds/src/groebner/WalkOptions.cpp:67:13:  [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, "f:t:p:qh",
data/4ti2-1.6.9+ds/src/groebner/WalkOptions.cpp:70:13:  [3] (buffer) getopt:
  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(argc, argv, "f:t:p:qh");
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1125:18:  [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.
  while ((optc = getopt_long (argc, argv, "hvb", longopts, NULL)) != -1)
data/4ti2-1.6.9+ds/src/util/genmodel.c:192:18:  [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.
  while ((optc = getopt_long (argc, argv, "hvq", longopts, NULL)) != -1)
data/4ti2-1.6.9+ds/src/util/gensymm.c:116:18:  [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.
  while ((optc = getopt_long (argc, argv, "hvq", longopts, NULL)) != -1)
data/4ti2-1.6.9+ds/src/zsolve/Heuristics.hpp:140:9:  [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.
        srand (time (NULL));
data/4ti2-1.6.9+ds/src/zsolve/Options.cpp:99:14:  [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.
	while ((c = getopt_long(argc, argv, "b::hl::qru::v::HGmp:", long_options, NULL)) != -1)
data/4ti2-1.6.9+ds/src/groebner/HybridGenSet.cpp:120:5:  [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[250];
data/4ti2-1.6.9+ds/src/groebner/HybridGenSet.cpp:127: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(buffer, "  Lift %3d: Col: %3d ", fin.count(), column); 
data/4ti2-1.6.9+ds/src/groebner/LongDenseIndexSet.h:157:27:  [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 unsigned char bit_count[256];
data/4ti2-1.6.9+ds/src/groebner/ProjectLiftGenSet.cpp:134:5:  [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[250];
data/4ti2-1.6.9+ds/src/groebner/ProjectLiftGenSet.cpp:135: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(buffer, "  Lift %3d: Col: %3d ", fin.count()+1, index); 
data/4ti2-1.6.9+ds/src/groebner/ProjectLiftGenSet.cpp:150: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(buffer, "  Lift %3d: Col: %3d ", fin.count(), column); 
data/4ti2-1.6.9+ds/src/groebner/SaturationGenSet.cpp:112:5:  [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[250];
data/4ti2-1.6.9+ds/src/groebner/SaturationGenSet.cpp:119: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(buffer, "  Sat %3d: Col: %3d ",
data/4ti2-1.6.9+ds/src/groebner/SaturationGenSet.cpp:150: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(buffer, "  Sat %3d: Col: %3d ",
data/4ti2-1.6.9+ds/src/groebner/ShortDenseIndexSet.h:151:27:  [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 unsigned char bit_count[256];
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:85: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.
  signed char Stuff[4];
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:95: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(this, &aux, sizeof(VectorAux) -4 + 1 + aux.Length());
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:121: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(aux, v.aux, sizeof(VectorAux) -4 + 1 + v.aux->Length());
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1177: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 fname[20];
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1178: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(fname, "ppi%d.dat", n);
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1180: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(fname, "wb");
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1193: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 fname[20];
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1194: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(fname, "ppi%d.gra", n);
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1210: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 fname[20];
data/4ti2-1.6.9+ds/src/ppi/ppi.cpp:1211: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(fname, "ppi%d.mat", n);
data/4ti2-1.6.9+ds/src/util/genmodel.c:54: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).
  if (!(in = fopen(fileName,"r"))) {
data/4ti2-1.6.9+ds/src/util/genmodel.c:184: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 fileName[PATH_MAX],outFileName[PATH_MAX];
data/4ti2-1.6.9+ds/src/util/genmodel.c:221:3:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
  strcat(fileName,".mod");
data/4ti2-1.6.9+ds/src/util/genmodel.c:223:3:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
  strcat(outFileName,".mat");
data/4ti2-1.6.9+ds/src/util/genmodel.c:234:15:  [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).
  if (!(out = fopen(outFileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/gensymm.c:107: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 fileName[PATH_MAX],outFileName[PATH_MAX];
data/4ti2-1.6.9+ds/src/util/gensymm.c:147:5:  [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).
  x=atoi(argv[argc-5]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:148:5:  [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).
  y=atoi(argv[argc-4]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:149:5:  [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).
  z=atoi(argv[argc-3]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:150:5:  [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).
  w=atoi(argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/gensymm.c:173:3:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
  strcat(outFileName,".sym");
data/4ti2-1.6.9+ds/src/util/gensymm.c:175:15:  [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).
  if (!(out = fopen(outFileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/output.c:53: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).
  if (!(in = fopen(fileName,"r"))) {
data/4ti2-1.6.9+ds/src/util/output.c:412: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 fileName[PATH_MAX],outFileName[PATH_MAX],domFileName[PATH_MAX],symFileName[PATH_MAX],
data/4ti2-1.6.9+ds/src/util/output.c:447:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".pos");
data/4ti2-1.6.9+ds/src/util/output.c:454:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(symFileName,".sym.full");
data/4ti2-1.6.9+ds/src/util/output.c:461:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(symFileName,".sym");
data/4ti2-1.6.9+ds/src/util/output.c:473:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(symFileName,".full");
data/4ti2-1.6.9+ds/src/util/output.c:479:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".rep");
data/4ti2-1.6.9+ds/src/util/output.c:491:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".nondom");
data/4ti2-1.6.9+ds/src/util/output.c:500:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(symFileName,".sym.full");
data/4ti2-1.6.9+ds/src/util/output.c:507:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(symFileName,".sym");
data/4ti2-1.6.9+ds/src/util/output.c:519:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(symFileName,".full");
data/4ti2-1.6.9+ds/src/util/output.c:524:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".maxnondom");
data/4ti2-1.6.9+ds/src/util/output.c:533:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(symFileName,".sym.full");
data/4ti2-1.6.9+ds/src/util/output.c:538:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(symFileName,".sym");
data/4ti2-1.6.9+ds/src/util/output.c:552:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".exp");
data/4ti2-1.6.9+ds/src/util/output.c:562:11:  [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).
	  degree=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:565:4:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	  strcat(outFileName,".deg.");
data/4ti2-1.6.9+ds/src/util/output.c:570: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).
	  lowdegree=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:571:15:  [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).
	  highdegree=atoi(argv[i+2]);
data/4ti2-1.6.9+ds/src/util/output.c:574:4:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	  strcat(outFileName,".deg.");
data/4ti2-1.6.9+ds/src/util/output.c:591:11:  [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).
	  degree=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:594:4:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	  strcat(outFileName,".supp.");
data/4ti2-1.6.9+ds/src/util/output.c:599: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).
	  lowdegree=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:600:15:  [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).
	  highdegree=atoi(argv[i+2]);
data/4ti2-1.6.9+ds/src/util/output.c:603:4:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	  strcat(outFileName,".supp.");
data/4ti2-1.6.9+ds/src/util/output.c:616: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).
      sizeOfLayer=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:627:8:  [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).
	coord=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:629:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(outFileName,".nonzero.");
data/4ti2-1.6.9+ds/src/util/output.c:651:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".0-1");
data/4ti2-1.6.9+ds/src/util/output.c:657: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).
      x=atoi(argv[i+1]);
data/4ti2-1.6.9+ds/src/util/output.c:658: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).
      y=atoi(argv[i+2]);
data/4ti2-1.6.9+ds/src/util/output.c:659: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).
      z=atoi(argv[i+3]);
data/4ti2-1.6.9+ds/src/util/output.c:661:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".3way");
data/4ti2-1.6.9+ds/src/util/output.c:668:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".tra");
data/4ti2-1.6.9+ds/src/util/output.c:675:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".maple");
data/4ti2-1.6.9+ds/src/util/output.c:682:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".macaulay2");
data/4ti2-1.6.9+ds/src/util/output.c:689:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".mathematica");
data/4ti2-1.6.9+ds/src/util/output.c:696:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".cocoa");
data/4ti2-1.6.9+ds/src/util/output.c:703:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".bin");
data/4ti2-1.6.9+ds/src/util/output.c:707:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(varFileName,".vars");
data/4ti2-1.6.9+ds/src/util/output.c:708: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).
      if ((in = fopen(varFileName,"r"))) {
data/4ti2-1.6.9+ds/src/util/output.c:752:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".submat");
data/4ti2-1.6.9+ds/src/util/output.c:760:8:  [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).
	coord=atoi(argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:762:9:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
        strcat(outFileName,".remcol");
data/4ti2-1.6.9+ds/src/util/output.c:775:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".stab");
data/4ti2-1.6.9+ds/src/util/output.c:783: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).
      coord=atoi(argv[argc-3]);
data/4ti2-1.6.9+ds/src/util/output.c:784:11:  [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).
      val=atoi(argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:791:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".fil");
data/4ti2-1.6.9+ds/src/util/output.c:798:8:  [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).
	coord=atoi(argv[argc-3]);
data/4ti2-1.6.9+ds/src/util/output.c:799:6:  [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).
	val=atoi(argv[argc-2]);
data/4ti2-1.6.9+ds/src/util/output.c:801:9:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
        strcat(outFileName,".addcol");
data/4ti2-1.6.9+ds/src/util/output.c:810: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).
      for (j=2;j<argc-1;j++) fixpoints[j-2]=atoi(argv[j]);
data/4ti2-1.6.9+ds/src/util/output.c:815:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".fix");
data/4ti2-1.6.9+ds/src/util/output.c:823: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).
      for (j=2;j<argc-1;j++) fixpoints[j-2]=atoi(argv[j]);
data/4ti2-1.6.9+ds/src/util/output.c:828:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".fox");
data/4ti2-1.6.9+ds/src/util/output.c:834:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(groFileName,".gro");
data/4ti2-1.6.9+ds/src/util/output.c:837:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(costFileName,".cost");
data/4ti2-1.6.9+ds/src/util/output.c:849:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".ini");
data/4ti2-1.6.9+ds/src/util/output.c:854:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(varFileName,".vars");
data/4ti2-1.6.9+ds/src/util/output.c:855: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).
      if ((in = fopen(varFileName,"r"))) {
data/4ti2-1.6.9+ds/src/util/output.c:881:7:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
      strcat(outFileName,".ini.bin");
data/4ti2-1.6.9+ds/src/util/print.c:92:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:118:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:158:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:198:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:226:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:328:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:387:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:464:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:490:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:518:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:596:15:  [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).
  if (!(out = fopen(outFileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:660:15:  [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).
  if (!(out = fopen(outFileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:738:15:  [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).
  if (!(out = fopen(outFileName,"w"))) {
data/4ti2-1.6.9+ds/src/util/print.c:768: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 outFileName[PATH_MAX];
data/4ti2-1.6.9+ds/src/util/print.c:801:5:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
    strcat(outFileName,".dual.hil");
data/4ti2-1.6.9+ds/src/util/print.c:811:5:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
    strcat(outFileName,".ray");
data/4ti2-1.6.9+ds/src/util/print.c:823:15:  [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).
  if (!(out = fopen(fileName,"w"))) {
data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_64.cpp:69: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).
    switch (atoi(argv[1])) {
data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_64.cpp:85:5:  [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 *qsolve_argv[2] = { "qsolve", "-q" };
data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_gmp.cpp:68: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).
    switch (atoi(argv[1])) {
data/4ti2-1.6.9+ds/test/qsolve/api/test_input_conversion_gmp.cpp:84:5:  [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 *qsolve_argv[2] = { "qsolve", "-q" };
data/4ti2-1.6.9+ds/src/4ti2/4ti2xx.h:45:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in) = 0; 
data/4ti2-1.6.9+ds/src/4ti2/4ti2xx.h:67:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(const char* project) = 0;
data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.cpp:96:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    mat->read(in);
data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.cpp:321:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
QSolveAPI::read(const char* basename_c_str)
data/4ti2-1.6.9+ds/src/groebner/QSolveAPI.h:44:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(const char* basename);
data/4ti2-1.6.9+ds/src/groebner/VectorArrayAPI.cpp:66:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
VectorArrayAPI::read(std::istream& in)
data/4ti2-1.6.9+ds/src/groebner/VectorArrayAPI.h:42:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in);
data/4ti2-1.6.9+ds/src/groebner/qsolve_main.cpp:61:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    qsolve_api->read(0);
data/4ti2-1.6.9+ds/src/util/output.c:576:4:  [1] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant character.
	  strcat(outFileName,"-");
data/4ti2-1.6.9+ds/src/util/output.c:605:4:  [1] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant character.
	  strcat(outFileName,"-");
data/4ti2-1.6.9+ds/src/zsolve/BoundAPI.hpp:35:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in);
data/4ti2-1.6.9+ds/src/zsolve/BoundAPI.hpp:53:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
BoundAPI<T>::read(std::istream& in)
data/4ti2-1.6.9+ds/src/zsolve/RelAPI.cpp:36:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
RelAPI::read(std::istream& in)
data/4ti2-1.6.9+ds/src/zsolve/RelAPI.h:34:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in);
data/4ti2-1.6.9+ds/src/zsolve/SignAPI.cpp:36:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
SignAPI::read(std::istream& in)
data/4ti2-1.6.9+ds/src/zsolve/SignAPI.h:34:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in);
data/4ti2-1.6.9+ds/src/zsolve/VectorArray.hpp:265:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    void read (std::istream& in, bool with_dims = true)
data/4ti2-1.6.9+ds/src/zsolve/VectorArray.hpp:290:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    va.read (in);
data/4ti2-1.6.9+ds/src/zsolve/VectorArrayAPI.hpp:45:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(std::istream& in);
data/4ti2-1.6.9+ds/src/zsolve/VectorArrayAPI.hpp:177:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
VectorArrayAPI<T>::read(std::istream& in)
data/4ti2-1.6.9+ds/src/zsolve/VectorArrayAPI.hpp:179:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    data.read(in, false);
data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp:59:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual void read(const char* project);
data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp:132:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ZSolveAPI<T>::read(const char* project_c_str)
data/4ti2-1.6.9+ds/src/zsolve/ZSolveAPI.hpp:230:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    mat->read(in);
data/4ti2-1.6.9+ds/src/zsolve/main.cpp:58:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        state->read(options.project().c_str());

ANALYSIS SUMMARY:

Hits = 276
Lines analyzed = 34937 in approximately 0.82 seconds (42535 lines/second)
Physical Source Lines of Code (SLOC) = 24695
Hits@level = [0] 220 [1]  25 [2] 114 [3]  17 [4] 120 [5]   0
Hits@level+ = [0+] 496 [1+] 276 [2+] 251 [3+] 137 [4+] 120 [5+]   0
Hits/KSLOC@level+ = [0+] 20.085 [1+] 11.1764 [2+] 10.164 [3+] 5.54768 [4+] 4.85928 [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.