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/fig2sxd-0.20/colors.h Examining data/fig2sxd-0.20/check.h Examining data/fig2sxd-0.20/vector2.h Examining data/fig2sxd-0.20/style_arrow.cpp Examining data/fig2sxd-0.20/xfigobjects.h Examining data/fig2sxd-0.20/xmlwrite.cpp Examining data/fig2sxd-0.20/xfig_poly.cpp Examining data/fig2sxd-0.20/xfig_text.cpp Examining data/fig2sxd-0.20/zipwrite.cpp Examining data/fig2sxd-0.20/zipwrite.h Examining data/fig2sxd-0.20/colors.cpp Examining data/fig2sxd-0.20/xfig_spline.cpp Examining data/fig2sxd-0.20/misc.cpp Examining data/fig2sxd-0.20/style_line.cpp Examining data/fig2sxd-0.20/xfig_compound.cpp Examining data/fig2sxd-0.20/styles.h Examining data/fig2sxd-0.20/fig2sxd.cpp Examining data/fig2sxd-0.20/style_text.cpp Examining data/fig2sxd-0.20/xmlwrite.h Examining data/fig2sxd-0.20/check.cpp Examining data/fig2sxd-0.20/misc.h Examining data/fig2sxd-0.20/xfig_arc.cpp Examining data/fig2sxd-0.20/xfig_ellipse.cpp FINAL RESULTS: data/fig2sxd-0.20/colors.cpp:95:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char map[17] = "0123456789ABCDEF"; data/fig2sxd-0.20/colors.cpp:96: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 tmp[8] = "#123456"; data/fig2sxd-0.20/fig2sxd.cpp:191:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char creationtime[30]; data/fig2sxd-0.20/style_arrow.cpp:48:11: [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. const char *names[4] = { "Stick", "ClosedTriangle", data/fig2sxd-0.20/style_arrow.cpp:50:11: [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. const char styles[2] = { 'O', 'F' }; data/fig2sxd-0.20/style_line.cpp:101:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char *styles[3] = { "single", "double", "triple" }; data/fig2sxd-0.20/zipwrite.cpp:91:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char bytes[2] = { (s&0xff), ((s>>8)&0xff) }; data/fig2sxd-0.20/zipwrite.cpp:98:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char bytes[4] = { data/fig2sxd-0.20/zipwrite.h:49: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 cbuf[32768]; data/fig2sxd-0.20/fig2sxd.cpp:367:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). e->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:372:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). p->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:377:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:382:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). t->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:387:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). a->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:392:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). c->read( figfile ); data/fig2sxd-0.20/fig2sxd.cpp:397:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). c->read( figfile ); data/fig2sxd-0.20/style_arrow.cpp:28:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Arrow::read( istream& figfile ) data/fig2sxd-0.20/style_line.cpp:116:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void LineFillStyle::read( istream& figfile, int& sub_type, int& depth, bool join ) data/fig2sxd-0.20/style_line.cpp:179:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). tmp.read( figfile ); data/fig2sxd-0.20/styles.h:63:14: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& read( istream& ); data/fig2sxd-0.20/styles.h:89:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read( istream& figfile, int& sub_type, int& depth, bool join=false ); data/fig2sxd-0.20/xfig_arc.cpp:28:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Arc::read( istream& figfile ) data/fig2sxd-0.20/xfig_arc.cpp:31:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). lfstmp.read( figfile, sub_type, depth ); data/fig2sxd-0.20/xfig_compound.cpp:23:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& OpenCompound::read( istream& figfile ) data/fig2sxd-0.20/xfig_compound.cpp:36:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& CloseCompound::read( istream& figfile ) data/fig2sxd-0.20/xfig_ellipse.cpp:27:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Ellipse::read( istream& figfile ) data/fig2sxd-0.20/xfig_ellipse.cpp:30:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). lfstmp.read( figfile, sub_type, depth ); data/fig2sxd-0.20/xfig_poly.cpp:33:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Poly::read( istream& figfile ) data/fig2sxd-0.20/xfig_poly.cpp:36:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). lfstmp.read( figfile, sub_type, depth, true ); data/fig2sxd-0.20/xfig_spline.cpp:39:18: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Spline::read( istream& figfile ) data/fig2sxd-0.20/xfig_spline.cpp:42:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). lfstmp.read( figfile, sub_type, depth ); data/fig2sxd-0.20/xfig_text.cpp:31:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). istream& Text::read( istream& figfile ) data/fig2sxd-0.20/xfigobjects.h:55:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:69:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:78:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:99:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:125:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:162:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); data/fig2sxd-0.20/xfigobjects.h:184:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::istream& read( std::istream& in ); ANALYSIS SUMMARY: Hits = 39 Lines analyzed = 3218 in approximately 0.11 seconds (28874 lines/second) Physical Source Lines of Code (SLOC) = 2279 Hits@level = [0] 0 [1] 30 [2] 9 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 39 [1+] 39 [2+] 9 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 17.1128 [1+] 17.1128 [2+] 3.9491 [3+] 0 [4+] 0 [5+] 0 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.