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-yajl-1.4.1/ext/yajl/yajl_ext.c
Examining data/ruby-yajl-1.4.1/ext/yajl/api/yajl_gen.h
Examining data/ruby-yajl-1.4.1/ext/yajl/api/yajl_parse.h
Examining data/ruby-yajl-1.4.1/ext/yajl/api/yajl_common.h
Examining data/ruby-yajl-1.4.1/ext/yajl/api/yajl_version.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_bytestack.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_ext.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_lex.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_lex.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_alloc.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_buf.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.h
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_alloc.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_version.c
Examining data/ruby-yajl-1.4.1/ext/yajl/yajl_buf.h

FINAL RESULTS:

data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:78:9:  [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((char *) str, errorType);
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:82:13:  [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((char *) str, errorText);            
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:118:13:  [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((char *) newStr, (char *) str);
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:119:13:  [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((char *) newStr, text);
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:120:13:  [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((char *) newStr, arrow);    
data/ruby-yajl-1.4.1/ext/yajl/yajl.c:88: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((void *) &(hand->alloc), (void *) afs, sizeof(yajl_alloc_funcs));
data/ruby-yajl-1.4.1/ext/yajl/yajl_buf.c:92:9:  [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(buf->data + buf->used, data, len);
data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c:64: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 hexBuf[7];
data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c:65: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 entityBuffer[7];
data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c:183:13:  [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 utf8Buf[5];
data/ruby-yajl-1.4.1/ext/yajl/yajl_ext.c:305: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(buf, numberVal, numberLen);
data/ruby-yajl-1.4.1/ext/yajl/yajl_ext.c:859:13:  [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(buf, event.buf, event.len);
data/ruby-yajl-1.4.1/ext/yajl/yajl_ext.c:1028:17:  [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(indentString, RSTRING_PTR(indent), RSTRING_LEN(indent));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:98: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((void *) &(g->alloc), (void *) afs, sizeof(yajl_alloc_funcs));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:204: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 i[32];
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:206: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(i, "%ld", number);
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:222: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 i[32];
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:226: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(i, "%.20g", number);
data/ruby-yajl-1.4.1/ext/yajl/yajl_lex.c:157: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.
static const char charLookupTable[256] =
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:55: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 text[72];
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:79: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((char *) str, " error");    
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:81:13:  [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((char *) str, ": ");            
data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c:127:47:  [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).
            print(ctx, escaped, (unsigned int)strlen(escaped));
data/ruby-yajl-1.4.1/ext/yajl/yajl_encode.c:230:59:  [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).
            yajl_buf_append(buf, unescaped, (unsigned int)strlen(unescaped));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:158:40:  [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).
                         (unsigned int)strlen(g->indentString));        \
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:207:39:  [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).
    g->print(g->ctx, i, (unsigned int)strlen(i));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:227:39:  [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).
    g->print(g->ctx, i, (unsigned int)strlen(i));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:260:30:  [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).
    g->print(g->ctx, "null", strlen("null"));
data/ruby-yajl-1.4.1/ext/yajl/yajl_gen.c:272:41:  [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).
    g->print(g->ctx, val, (unsigned int)strlen(val));
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:70:22:  [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).
        memneeded += strlen(errorType);
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:71:22:  [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).
        memneeded += strlen(" error");
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:73:26:  [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).
            memneeded += strlen(": ");            
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:74:26:  [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).
            memneeded += strlen(errorText);            
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:84:9:  [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((char *) str, "\n");    
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:114:58:  [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).
                YA_MALLOC(&(hand->alloc), (unsigned int)(strlen((char *) str) +
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:115:58:  [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).
                                                         strlen((char *) text) +
data/ruby-yajl-1.4.1/ext/yajl/yajl_parser.c:116:58:  [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).
                                                         strlen(arrow) + 1));

ANALYSIS SUMMARY:

Hits = 37
Lines analyzed = 4612 in approximately 0.15 seconds (30455 lines/second)
Physical Source Lines of Code (SLOC) = 2878
Hits@level = [0]   4 [1]  15 [2]  17 [3]   0 [4]   5 [5]   0
Hits@level+ = [0+]  41 [1+]  37 [2+]  22 [3+]   5 [4+]   5 [5+]   0
Hits/KSLOC@level+ = [0+] 14.246 [1+] 12.8562 [2+] 7.6442 [3+] 1.73732 [4+] 1.73732 [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.