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/epix-1.2.19/Color.cc Examining data/epix-1.2.19/Color.h Examining data/epix-1.2.19/Color_Base.cc Examining data/epix-1.2.19/Color_Base.h Examining data/epix-1.2.19/Color_CMY.cc Examining data/epix-1.2.19/Color_CMY.h Examining data/epix-1.2.19/Color_CMYK.cc Examining data/epix-1.2.19/Color_CMYK.h Examining data/epix-1.2.19/Color_Gray.cc Examining data/epix-1.2.19/Color_Gray.h Examining data/epix-1.2.19/Color_Neutral.cc Examining data/epix-1.2.19/Color_Neutral.h Examining data/epix-1.2.19/Color_RGB.cc Examining data/epix-1.2.19/Color_RGB.h Examining data/epix-1.2.19/Color_Sep.cc Examining data/epix-1.2.19/Color_Sep.h Examining data/epix-1.2.19/Color_Utils.cc Examining data/epix-1.2.19/Color_Utils.h Examining data/epix-1.2.19/Complex.cc Examining data/epix-1.2.19/Complex.h Examining data/epix-1.2.19/Sline.cc Examining data/epix-1.2.19/Sline.h Examining data/epix-1.2.19/active_screen.cc Examining data/epix-1.2.19/active_screen.h Examining data/epix-1.2.19/affine.cc Examining data/epix-1.2.19/affine.h Examining data/epix-1.2.19/angle_units.cc Examining data/epix-1.2.19/angle_units.h Examining data/epix-1.2.19/arrow_data.cc Examining data/epix-1.2.19/arrow_data.h Examining data/epix-1.2.19/arrow_style.cc Examining data/epix-1.2.19/arrow_style.h Examining data/epix-1.2.19/axis.cc Examining data/epix-1.2.19/axis.h Examining data/epix-1.2.19/camera.cc Examining data/epix-1.2.19/camera.h Examining data/epix-1.2.19/circle.cc Examining data/epix-1.2.19/circle.h Examining data/epix-1.2.19/clipping.cc Examining data/epix-1.2.19/clipping.h Examining data/epix-1.2.19/constants.h Examining data/epix-1.2.19/crop_algorithms.h Examining data/epix-1.2.19/cropping.cc Examining data/epix-1.2.19/cropping.h Examining data/epix-1.2.19/curves.cc Examining data/epix-1.2.19/curves.h Examining data/epix-1.2.19/data_bins.cc Examining data/epix-1.2.19/data_bins.h Examining data/epix-1.2.19/data_file.cc Examining data/epix-1.2.19/data_file.h Examining data/epix-1.2.19/data_mask.cc Examining data/epix-1.2.19/data_mask.h Examining data/epix-1.2.19/debug.h Examining data/epix-1.2.19/deriv.h Examining data/epix-1.2.19/doc/my_code.cc Examining data/epix-1.2.19/doc/my_code.h Examining data/epix-1.2.19/domain.cc Examining data/epix-1.2.19/domain.h Examining data/epix-1.2.19/edge_data.h Examining data/epix-1.2.19/eepic.cc Examining data/epix-1.2.19/eepic.h Examining data/epix-1.2.19/enums.h Examining data/epix-1.2.19/errors.h Examining data/epix-1.2.19/facet.cc Examining data/epix-1.2.19/facet.h Examining data/epix-1.2.19/fmt_template.cc Examining data/epix-1.2.19/fmt_template.h Examining data/epix-1.2.19/format.cc Examining data/epix-1.2.19/format.h Examining data/epix-1.2.19/frac.cc Examining data/epix-1.2.19/frac.h Examining data/epix-1.2.19/frame.cc Examining data/epix-1.2.19/frame.h Examining data/epix-1.2.19/functions.cc Examining data/epix-1.2.19/functions.h Examining data/epix-1.2.19/geometry.cc Examining data/epix-1.2.19/geometry.h Examining data/epix-1.2.19/glyph.cc Examining data/epix-1.2.19/glyph.h Examining data/epix-1.2.19/halfspace.cc Examining data/epix-1.2.19/halfspace.h Examining data/epix-1.2.19/hatching.cc Examining data/epix-1.2.19/hatching.h Examining data/epix-1.2.19/intersections.cc Examining data/epix-1.2.19/intersections.h Examining data/epix-1.2.19/interval.cc Examining data/epix-1.2.19/interval.h Examining data/epix-1.2.19/label_data.cc Examining data/epix-1.2.19/label_data.h Examining data/epix-1.2.19/label_style.cc Examining data/epix-1.2.19/label_style.h Examining data/epix-1.2.19/legend.cc Examining data/epix-1.2.19/legend.h Examining data/epix-1.2.19/legend_item.cc Examining data/epix-1.2.19/legend_item.h Examining data/epix-1.2.19/legend_tile.cc Examining data/epix-1.2.19/legend_tile.h Examining data/epix-1.2.19/length.cc Examining data/epix-1.2.19/length.h Examining data/epix-1.2.19/lens.cc Examining data/epix-1.2.19/lens.h Examining data/epix-1.2.19/map.h Examining data/epix-1.2.19/marker_style.cc Examining data/epix-1.2.19/marker_style.h Examining data/epix-1.2.19/markers.cc Examining data/epix-1.2.19/markers.h Examining data/epix-1.2.19/mask_diamond.cc Examining data/epix-1.2.19/mask_diamond.h Examining data/epix-1.2.19/mask_ellipse.cc Examining data/epix-1.2.19/mask_ellipse.h Examining data/epix-1.2.19/mask_rectangle.cc Examining data/epix-1.2.19/mask_rectangle.h Examining data/epix-1.2.19/paint_style.cc Examining data/epix-1.2.19/paint_style.h Examining data/epix-1.2.19/pairs.cc Examining data/epix-1.2.19/pairs.h Examining data/epix-1.2.19/path.cc Examining data/epix-1.2.19/path.h Examining data/epix-1.2.19/path_data.cc Examining data/epix-1.2.19/path_data.h Examining data/epix-1.2.19/path_style.cc Examining data/epix-1.2.19/path_style.h Examining data/epix-1.2.19/pen_arrow.cc Examining data/epix-1.2.19/pen_arrow.h Examining data/epix-1.2.19/pen_data.cc Examining data/epix-1.2.19/pen_data.h Examining data/epix-1.2.19/pen_fill.cc Examining data/epix-1.2.19/pen_fill.h Examining data/epix-1.2.19/pen_line.cc Examining data/epix-1.2.19/pen_line.h Examining data/epix-1.2.19/picture.cc Examining data/epix-1.2.19/picture.h Examining data/epix-1.2.19/picture_data.cc Examining data/epix-1.2.19/picture_data.h Examining data/epix-1.2.19/plane.cc Examining data/epix-1.2.19/plane.h Examining data/epix-1.2.19/plot_algorithms.h Examining data/epix-1.2.19/plots.cc Examining data/epix-1.2.19/plots.h Examining data/epix-1.2.19/pst.cc Examining data/epix-1.2.19/pst.h Examining data/epix-1.2.19/samples/binom.cc Examining data/epix-1.2.19/samples/lighting.h Examining data/epix-1.2.19/samples/std_F.cc Examining data/epix-1.2.19/samples/std_F.h Examining data/epix-1.2.19/screen.cc Examining data/epix-1.2.19/screen.h Examining data/epix-1.2.19/screen_crop.cc Examining data/epix-1.2.19/screen_crop.h Examining data/epix-1.2.19/screen_data.cc Examining data/epix-1.2.19/screen_data.h Examining data/epix-1.2.19/screen_mask.cc Examining data/epix-1.2.19/screen_mask.h Examining data/epix-1.2.19/segment.cc Examining data/epix-1.2.19/segment.h Examining data/epix-1.2.19/sphere.cc Examining data/epix-1.2.19/sphere.h Examining data/epix-1.2.19/spline.cc Examining data/epix-1.2.19/spline.h Examining data/epix-1.2.19/spline_data.h Examining data/epix-1.2.19/state.cc Examining data/epix-1.2.19/state.h Examining data/epix-1.2.19/surface.cc Examining data/epix-1.2.19/surface.h Examining data/epix-1.2.19/tikz.cc Examining data/epix-1.2.19/tikz.h Examining data/epix-1.2.19/tile.cc Examining data/epix-1.2.19/tile.h Examining data/epix-1.2.19/triples.cc Examining data/epix-1.2.19/triples.h Examining data/epix-1.2.19/utils.cc Examining data/epix-1.2.19/utils.h Examining data/epix-1.2.19/verbatim.cc Examining data/epix-1.2.19/verbatim.h FINAL RESULTS: data/epix-1.2.19/utils.cc:58:7: [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 buf[max_len]; data/epix-1.2.19/data_bins.cc:243:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). data_bins& data_bins::read(const std::vector<double>& data) data/epix-1.2.19/data_bins.h:71:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). data_bins& read(const std::vector<double>&); data/epix-1.2.19/data_file.cc:178:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(filename); data/epix-1.2.19/data_file.cc:191:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(filename); data/epix-1.2.19/data_file.cc:236:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). data_file& data_file::read(const char* filename) data/epix-1.2.19/data_file.cc:676:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). db.read(temp.column(col)); data/epix-1.2.19/data_file.cc:684:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). db.read(temp.column(col)); data/epix-1.2.19/data_file.h:69:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). data_file& read(const char*); ANALYSIS SUMMARY: Hits = 9 Lines analyzed = 30126 in approximately 0.75 seconds (40129 lines/second) Physical Source Lines of Code (SLOC) = 16837 Hits@level = [0] 0 [1] 8 [2] 1 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 9 [1+] 9 [2+] 1 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.534537 [1+] 0.534537 [2+] 0.059393 [3+] 0 [4+] 0 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.