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/statsprocessor-0.11+git20160316/src/sp.c

FINAL RESULTS:

data/statsprocessor-0.11+git20160316/src/sp.c:121:5:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    printf (USAGE_MINI[i], progname);
data/statsprocessor-0.11+git20160316/src/sp.c:144:5:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    printf (USAGE_BIG[i], progname);
data/statsprocessor-0.11+git20160316/src/sp.c:520:15:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
  while ((c = getopt_long (argc, argv, "Vht:o:s:l:1:2:3:4:", long_options, &option_index)) != -1)
data/statsprocessor-0.11+git20160316/src/sp.c:224: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 (mp_sys[5], mp_sys_high, sizeof (mp_sys_high));
data/statsprocessor-0.11+git20160316/src/sp.c:225: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 (mp_sys[6], mp_sys_de,   sizeof (mp_sys_de));
data/statsprocessor-0.11+git20160316/src/sp.c:226: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 (mp_sys[7], mp_sys_fr,   sizeof (mp_sys_fr));
data/statsprocessor-0.11+git20160316/src/sp.c:227: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 (mp_sys[8], mp_sys_ru,   sizeof (mp_sys_ru));
data/statsprocessor-0.11+git20160316/src/sp.c:250:41:  [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.
        case 'l': mp_sys_len = strlen ((char *) mp_sys[0]);
data/statsprocessor-0.11+git20160316/src/sp.c:251:19:  [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 (out_buf + out_len, mp_sys[0], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:254:41:  [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.
        case 'u': mp_sys_len = strlen ((char *) mp_sys[1]);
data/statsprocessor-0.11+git20160316/src/sp.c:255:19:  [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 (out_buf + out_len, mp_sys[1], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:258:41:  [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.
        case 'd': mp_sys_len = strlen ((char *) mp_sys[2]);
data/statsprocessor-0.11+git20160316/src/sp.c:259:19:  [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 (out_buf + out_len, mp_sys[2], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:262:41:  [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.
        case 's': mp_sys_len = strlen ((char *) mp_sys[3]);
data/statsprocessor-0.11+git20160316/src/sp.c:263:19:  [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 (out_buf + out_len, mp_sys[3], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:266:41:  [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.
        case 'a': mp_sys_len = strlen ((char *) mp_sys[4]);
data/statsprocessor-0.11+git20160316/src/sp.c:267:19:  [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 (out_buf + out_len, mp_sys[4], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:270:41:  [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.
        case 'h': mp_sys_len = strlen ((char *) mp_sys[5]);
data/statsprocessor-0.11+git20160316/src/sp.c:271:19:  [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 (out_buf + out_len, mp_sys[5], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:274:41:  [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.
        case 'D': mp_sys_len = strlen ((char *) mp_sys[6]);
data/statsprocessor-0.11+git20160316/src/sp.c:275:19:  [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 (out_buf + out_len, mp_sys[6], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:278:41:  [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.
        case 'F': mp_sys_len = strlen ((char *) mp_sys[7]);
data/statsprocessor-0.11+git20160316/src/sp.c:279:19:  [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 (out_buf + out_len, mp_sys[7], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:282:41:  [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.
        case 'R': mp_sys_len = strlen ((char *) mp_sys[8]);
data/statsprocessor-0.11+git20160316/src/sp.c:283:19:  [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 (out_buf + out_len, mp_sys[8], mp_sys_len);
data/statsprocessor-0.11+git20160316/src/sp.c:337:51:  [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.
        case 'l': add_cs_buf (mp_sys[0], strlen ((char *) mp_sys[0]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:340:51:  [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.
        case 'u': add_cs_buf (mp_sys[1], strlen ((char *) mp_sys[1]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:343:51:  [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.
        case 'd': add_cs_buf (mp_sys[2], strlen ((char *) mp_sys[2]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:346:51:  [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.
        case 's': add_cs_buf (mp_sys[3], strlen ((char *) mp_sys[3]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:349:51:  [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.
        case 'a': add_cs_buf (mp_sys[4], strlen ((char *) mp_sys[4]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:352:51:  [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.
        case 'h': add_cs_buf (mp_sys[5], strlen ((char *) mp_sys[5]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:355:51:  [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.
        case 'D': add_cs_buf (mp_sys[6], strlen ((char *) mp_sys[6]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:358:51:  [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.
        case 'F': add_cs_buf (mp_sys[7], strlen ((char *) mp_sys[7]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:361:51:  [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.
        case 'R': add_cs_buf (mp_sys[8], strlen ((char *) mp_sys[8]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:364:51:  [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.
        case '1': add_cs_buf (mp_usr[0], strlen ((char *) mp_usr[0]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:367:51:  [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.
        case '2': add_cs_buf (mp_usr[1], strlen ((char *) mp_usr[1]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:370:51:  [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.
        case '3': add_cs_buf (mp_usr[2], strlen ((char *) mp_usr[2]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:373:51:  [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.
        case '4': add_cs_buf (mp_usr[3], strlen ((char *) mp_usr[3]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:530:55:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
      case IDX_PW_MIN:            pw_min            = atoi (optarg);  break;
data/statsprocessor-0.11+git20160316/src/sp.c:531:55:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
      case IDX_PW_MAX:            pw_max            = atoi (optarg);  break;
data/statsprocessor-0.11+git20160316/src/sp.c:532:55:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
      case IDX_THRESHOLD:         threshold         = atoi (optarg);  break;
data/statsprocessor-0.11+git20160316/src/sp.c:618:19:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if ((fp_out = fopen (output_file, "ab")) == NULL)
data/statsprocessor-0.11+git20160316/src/sp.c:673:14:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
  FILE *fd = fopen (hcstat, "rb");
data/statsprocessor-0.11+git20160316/src/sp.c:741: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 (root_stats_buf_by_pos[i], root_stats_buf_by_pos[0], CHARSIZ * sizeof (uint64_t));
data/statsprocessor-0.11+git20160316/src/sp.c:746: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 (markov_stats_buf_by_key[i][0], markov_stats_buf_by_key[0][0], CHARSIZ * CHARSIZ * sizeof (uint64_t));
data/statsprocessor-0.11+git20160316/src/sp.c:1058: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 (out_buf + out_pos, pw_buf, out_len);
data/statsprocessor-0.11+git20160316/src/sp.c:250:32:  [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).
        case 'l': mp_sys_len = strlen ((char *) mp_sys[0]);
data/statsprocessor-0.11+git20160316/src/sp.c:254:32:  [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).
        case 'u': mp_sys_len = strlen ((char *) mp_sys[1]);
data/statsprocessor-0.11+git20160316/src/sp.c:258:32:  [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).
        case 'd': mp_sys_len = strlen ((char *) mp_sys[2]);
data/statsprocessor-0.11+git20160316/src/sp.c:262:32:  [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).
        case 's': mp_sys_len = strlen ((char *) mp_sys[3]);
data/statsprocessor-0.11+git20160316/src/sp.c:266:32:  [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).
        case 'a': mp_sys_len = strlen ((char *) mp_sys[4]);
data/statsprocessor-0.11+git20160316/src/sp.c:270:32:  [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).
        case 'h': mp_sys_len = strlen ((char *) mp_sys[5]);
data/statsprocessor-0.11+git20160316/src/sp.c:274:32:  [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).
        case 'D': mp_sys_len = strlen ((char *) mp_sys[6]);
data/statsprocessor-0.11+git20160316/src/sp.c:278:32:  [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).
        case 'F': mp_sys_len = strlen ((char *) mp_sys[7]);
data/statsprocessor-0.11+git20160316/src/sp.c:282:32:  [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).
        case 'R': mp_sys_len = strlen ((char *) mp_sys[8]);
data/statsprocessor-0.11+git20160316/src/sp.c:337:42:  [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).
        case 'l': add_cs_buf (mp_sys[0], strlen ((char *) mp_sys[0]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:340:42:  [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).
        case 'u': add_cs_buf (mp_sys[1], strlen ((char *) mp_sys[1]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:343:42:  [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).
        case 'd': add_cs_buf (mp_sys[2], strlen ((char *) mp_sys[2]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:346:42:  [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).
        case 's': add_cs_buf (mp_sys[3], strlen ((char *) mp_sys[3]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:349:42:  [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).
        case 'a': add_cs_buf (mp_sys[4], strlen ((char *) mp_sys[4]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:352:42:  [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).
        case 'h': add_cs_buf (mp_sys[5], strlen ((char *) mp_sys[5]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:355:42:  [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).
        case 'D': add_cs_buf (mp_sys[6], strlen ((char *) mp_sys[6]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:358:42:  [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).
        case 'F': add_cs_buf (mp_sys[7], strlen ((char *) mp_sys[7]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:361:42:  [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).
        case 'R': add_cs_buf (mp_sys[8], strlen ((char *) mp_sys[8]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:364:42:  [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).
        case '1': add_cs_buf (mp_usr[0], strlen ((char *) mp_usr[0]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:367:42:  [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).
        case '2': add_cs_buf (mp_usr[1], strlen ((char *) mp_usr[1]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:370:42:  [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).
        case '3': add_cs_buf (mp_usr[2], strlen ((char *) mp_usr[2]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:373:42:  [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).
        case '4': add_cs_buf (mp_usr[3], strlen ((char *) mp_usr[3]), out_css, out_idx);
data/statsprocessor-0.11+git20160316/src/sp.c:593:66:  [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 (custom_charset_1) mp_expand ((uint8_t *) custom_charset_1, strlen (custom_charset_1), mp_usr[0], mp_sys, hex_charset);
data/statsprocessor-0.11+git20160316/src/sp.c:594:66:  [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 (custom_charset_2) mp_expand ((uint8_t *) custom_charset_2, strlen (custom_charset_2), mp_usr[1], mp_sys, hex_charset);
data/statsprocessor-0.11+git20160316/src/sp.c:595:66:  [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 (custom_charset_3) mp_expand ((uint8_t *) custom_charset_3, strlen (custom_charset_3), mp_usr[2], mp_sys, hex_charset);
data/statsprocessor-0.11+git20160316/src/sp.c:596:66:  [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 (custom_charset_4) mp_expand ((uint8_t *) custom_charset_4, strlen (custom_charset_4), mp_usr[3], mp_sys, hex_charset);
data/statsprocessor-0.11+git20160316/src/sp.c:600: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).
  uint32_t mask_idx = mp_gen_css ((uint8_t *) mask_buf, strlen (mask_buf), mp_sys, mp_usr, mask_css, hex_charset);

ANALYSIS SUMMARY:

Hits = 73
Lines analyzed = 1083 in approximately 0.06 seconds (19117 lines/second)
Physical Source Lines of Code (SLOC) = 789
Hits@level = [0]  12 [1]  27 [2]  43 [3]   1 [4]   2 [5]   0
Hits@level+ = [0+]  85 [1+]  73 [2+]  46 [3+]   3 [4+]   2 [5+]   0
Hits/KSLOC@level+ = [0+] 107.731 [1+] 92.5222 [2+] 58.3016 [3+] 3.80228 [4+] 2.53485 [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.