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/ruby-cairo-1.16.6/ext/cairo/rb_cairo.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo.h Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_constants.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_context.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_device.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_exception.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_font_extents.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_font_face.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_font_options.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_glyph.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_io.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_io.h Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_matrix.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_path.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_pattern.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.h Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_quartz_surface.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_rectangle.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_region.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_scaled_font.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_surface.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_text_cluster.c Examining data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_text_extents.c FINAL RESULTS: data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c:67: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 (const_name, prefix); data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c:68: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 (const_name + prefix_len, normalized_name); data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_io.c:136:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ((void *)closure->data, (const void *) StringValuePtr (result), length); data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c:46:7: [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 ((char *) &glyphs[i], data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_surface.c:780:7: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (data, raw_data, length); data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c:63:16: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). prefix_len = strlen (prefix); data/ruby-cairo-1.16.6/ext/cairo/rb_cairo_private.c:64:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). normalized_name_len = strlen (normalized_name); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 11879 in approximately 0.24 seconds (49191 lines/second) Physical Source Lines of Code (SLOC) = 9835 Hits@level = [0] 0 [1] 2 [2] 3 [3] 0 [4] 2 [5] 0 Hits@level+ = [0+] 7 [1+] 7 [2+] 5 [3+] 2 [4+] 2 [5+] 0 Hits/KSLOC@level+ = [0+] 0.711744 [1+] 0.711744 [2+] 0.508388 [3+] 0.203355 [4+] 0.203355 [5+] 0 Dot directories skipped = 2 (--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.