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/python-udatetime-0.0.16/src/rfc3339.c

FINAL RESULTS:

data/python-udatetime-0.0.16/src/rfc3339.c:261: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 fractions[7] = {0};
data/python-udatetime-0.0.16/src/rfc3339.c:484: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(
data/python-udatetime-0.0.16/src/rfc3339.c:580: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 tzname[7] = {0};
data/python-udatetime-0.0.16/src/rfc3339.c:589: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(
data/python-udatetime-0.0.16/src/rfc3339.c:830: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 datetime_string[33] = {0};
data/python-udatetime-0.0.16/src/rfc3339.c:903: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 datetime_string[33] = {0};
data/python-udatetime-0.0.16/src/rfc3339.c:917: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 datetime_string[33] = {0};
data/python-udatetime-0.0.16/src/rfc3339.c:133:9:  [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).
    if (strlen(tokens) < 10)
data/python-udatetime-0.0.16/src/rfc3339.c:231:9:  [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).
    if (strlen(tokens) < 8)
data/python-udatetime-0.0.16/src/rfc3339.c:235:10:  [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).
    if ((strlen(tokens) > 11) && ((*(tokens + 10 ) == 'T') || (*(tokens + 10 ) == 't'))) {
data/python-udatetime-0.0.16/src/rfc3339.c:250:9:  [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).
    if (strlen(tokens) == 8) {
data/python-udatetime-0.0.16/src/rfc3339.c:275:13:  [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).
        if (strlen(fractions) < 6 && strlen(fractions) > 0) {
data/python-udatetime-0.0.16/src/rfc3339.c:275:38:  [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).
        if (strlen(fractions) < 6 && strlen(fractions) > 0) {
data/python-udatetime-0.0.16/src/rfc3339.c:276:57:  [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).
            (*t).fraction = (*t).fraction * pow(10, 6 - strlen(fractions)); // convert msec to usec
data/python-udatetime-0.0.16/src/rfc3339.c:277:20:  [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).
        } else if (strlen(fractions) == 6) {
data/python-udatetime-0.0.16/src/rfc3339.c:287:19:  [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).
        tokens += strlen(fractions);
data/python-udatetime-0.0.16/src/rfc3339.c:290:13:  [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).
        if (strlen(tokens) == 0) {
data/python-udatetime-0.0.16/src/rfc3339.c:302:13:  [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).
        if (strlen(tokens) == 0) {
data/python-udatetime-0.0.16/src/rfc3339.c:330:13:  [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).
        if (strlen(tokens) == 0) {

ANALYSIS SUMMARY:

Hits = 19
Lines analyzed = 1056 in approximately 0.04 seconds (24030 lines/second)
Physical Source Lines of Code (SLOC) = 768
Hits@level = [0]   4 [1]  12 [2]   7 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  23 [1+]  19 [2+]   7 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 29.9479 [1+] 24.7396 [2+] 9.11458 [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.