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/darkstat-3.0.719/cap.c
Examining data/darkstat-3.0.719/acct.h
Examining data/darkstat-3.0.719/addr.h
Examining data/darkstat-3.0.719/daylog.h
Examining data/darkstat-3.0.719/decode.h
Examining data/darkstat-3.0.719/localip.c
Examining data/darkstat-3.0.719/static/c-ify.c
Examining data/darkstat-3.0.719/err.h
Examining data/darkstat-3.0.719/acct.c
Examining data/darkstat-3.0.719/stylecss.h
Examining data/darkstat-3.0.719/decode.c
Examining data/darkstat-3.0.719/opt.h
Examining data/darkstat-3.0.719/http.c
Examining data/darkstat-3.0.719/addr.c
Examining data/darkstat-3.0.719/graph_db.c
Examining data/darkstat-3.0.719/conv.c
Examining data/darkstat-3.0.719/hosts_db.h
Examining data/darkstat-3.0.719/str.h
Examining data/darkstat-3.0.719/hosts_sort.c
Examining data/darkstat-3.0.719/pidfile.c
Examining data/darkstat-3.0.719/conv.h
Examining data/darkstat-3.0.719/hosts_db.c
Examining data/darkstat-3.0.719/queue.h
Examining data/darkstat-3.0.719/ncache.h
Examining data/darkstat-3.0.719/localip.h
Examining data/darkstat-3.0.719/str.c
Examining data/darkstat-3.0.719/tree.h
Examining data/darkstat-3.0.719/cdefs.h
Examining data/darkstat-3.0.719/now.c
Examining data/darkstat-3.0.719/html.c
Examining data/darkstat-3.0.719/db.h
Examining data/darkstat-3.0.719/graph_db.h
Examining data/darkstat-3.0.719/bsd.c
Examining data/darkstat-3.0.719/now.h
Examining data/darkstat-3.0.719/dns.c
Examining data/darkstat-3.0.719/darkstat.c
Examining data/darkstat-3.0.719/err.c
Examining data/darkstat-3.0.719/dns.h
Examining data/darkstat-3.0.719/graphjs.h
Examining data/darkstat-3.0.719/daylog.c
Examining data/darkstat-3.0.719/db.c
Examining data/darkstat-3.0.719/html.h
Examining data/darkstat-3.0.719/pidfile.h
Examining data/darkstat-3.0.719/ncache.c
Examining data/darkstat-3.0.719/cap.h
Examining data/darkstat-3.0.719/bsd.h
Examining data/darkstat-3.0.719/http.h

FINAL RESULTS:

data/darkstat-3.0.719/pidfile.c:59:8:  [5] (race) chown:
  This accepts filename arguments; if an attacker can move those files, a
  race condition results. (CWE-362). Use fchown( ) instead.
   if (chown(filename, pw->pw_uid, pw->pw_gid) == -1)
data/darkstat-3.0.719/darkstat.c:232:4:  [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(PACKAGE_STRING " (using %s)\n", pcap_lib_version());
data/darkstat-3.0.719/err.c:48:4:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
   vsnprintf(buf+pos, sizeof(buf)-pos, format, va);
data/darkstat-3.0.719/err.c:66:7:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      vfprintf(stderr, format, va);
data/darkstat-3.0.719/err.c:84:7:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      vfprintf(stderr, format, va);
data/darkstat-3.0.719/err.c:102:7:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      vfprintf(stderr, format, va);
data/darkstat-3.0.719/err.c:118:7:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      vfprintf(stderr, format, va);
data/darkstat-3.0.719/err.c:183:7:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      vfprintf(stderr, format, va);
data/darkstat-3.0.719/conv.c:310:11:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
      if (chroot(chroot_dir) == -1)
data/darkstat-3.0.719/acct.c:202: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(hs->u.host.mac_addr, sm->src_mac, sizeof(sm->src_mac));
data/darkstat-3.0.719/acct.c:210: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(hd->u.host.mac_addr, sm->dst_mac, sizeof(sm->dst_mac));
data/darkstat-3.0.719/addr.c:29:8:  [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 char _addrstrbuf[INET6_ADDRSTRLEN];
data/darkstat-3.0.719/addr.c:60: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(&(a->ip.v6),
data/darkstat-3.0.719/cap.c:117:4:  [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 errbuf[PCAP_ERRBUF_SIZE], *tmp_device;
data/darkstat-3.0.719/cap.c:490:4:  [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 errbuf[PCAP_ERRBUF_SIZE];
data/darkstat-3.0.719/conv.c:94: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(dest, src+left, right-left);
data/darkstat-3.0.719/conv.c:232:14:  [2] (misc) open:
  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).
   fd_null = open(PATH_DEVNULL, O_RDWR, 0);
data/darkstat-3.0.719/conv.c:241:7:  [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[1];
data/darkstat-3.0.719/darkstat.c:229:4:  [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 indent[sizeof(intro)];
data/darkstat-3.0.719/daylog.c:31:8:  [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 char datebuf[DAYLOG_DATE_LEN];
data/darkstat-3.0.719/daylog.c:67:9:  [2] (misc) open:
  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).
   fd = open(daylog_fn, O_WRONLY | O_APPEND | O_CREAT | O_NOFOLLOW, 0600);
data/darkstat-3.0.719/db.c:55:4:  [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(&no, str, 8);
data/darkstat-3.0.719/db.c:310:13:  [2] (misc) open:
  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).
   int fd = open(filename, O_RDONLY | O_NOFOLLOW);
data/darkstat-3.0.719/db.c:344:13:  [2] (misc) open:
  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).
   int fd = open(filename, O_WRONLY | O_CREAT | O_NOFOLLOW | O_TRUNC, 0600);
data/darkstat-3.0.719/dns.c:48:4:  [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 name[256]; /* http://tools.ietf.org/html/rfc1034#section-3.1 */
data/darkstat-3.0.719/dns.c:190:4:  [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(ipaddr, &reply.addr, sizeof(*ipaddr));
data/darkstat-3.0.719/dns.c:278:4:  [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(ip, &i->ip, sizeof(*ip));
data/darkstat-3.0.719/dns.c:345:10:  [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 host[NI_MAXHOST];
data/darkstat-3.0.719/err.c:40:4:  [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 buf[512];
data/darkstat-3.0.719/err.c:149:4:  [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 buf[1];
data/darkstat-3.0.719/graph_db.c:129:4:  [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(g->in, tmp, size);
data/darkstat-3.0.719/graph_db.c:133:4:  [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(g->out, tmp, size);
data/darkstat-3.0.719/graph_db.c:296:4:  [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 start_when[100];
data/darkstat-3.0.719/hosts_db.c:704: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(&(a.ip.v6),
data/darkstat-3.0.719/hosts_db.c:1065:4:  [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 ls_when[100];
data/darkstat-3.0.719/hosts_db.c:1292:4:  [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 hdr[4];
data/darkstat-3.0.719/http.c:246: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+pos, elem[i], delta);
data/darkstat-3.0.719/http.c:313: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 ipaddr[INET6_ADDRSTRLEN], portstr[12];
data/darkstat-3.0.719/http.c:380: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 date[DATE_LEN];
data/darkstat-3.0.719/http.c:735: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 buf[65536];
data/darkstat-3.0.719/http.c:751: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(conn->request+conn->request_length, buf, (size_t)recvd);
data/darkstat-3.0.719/http.c:918: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(slashed_url+1, url, urllen); /* don't copy NUL */
data/darkstat-3.0.719/http.c:944: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 portstr[6];
data/darkstat-3.0.719/http.c:973: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 ipaddr[INET6_ADDRSTRLEN];
data/darkstat-3.0.719/http.c:1094: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 ipaddr[INET6_ADDRSTRLEN];
data/darkstat-3.0.719/localip.c:61:17:  [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 char before[INET6_ADDRSTRLEN];
data/darkstat-3.0.719/localip.c:115: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(&(a.ip.v6), &sa6->sin6_addr, sizeof(a.ip.v6));
data/darkstat-3.0.719/now.c:104:4:  [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(dest, &t, sizeof(t));
data/darkstat-3.0.719/pidfile.c:56:12:  [2] (misc) open:
  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).
   pidfd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0600);
data/darkstat-3.0.719/str.c:74:4:  [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->buf + buf->len, s, len);
data/darkstat-3.0.719/str.c:108:4:  [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 out[I32_MAXLEN];
data/darkstat-3.0.719/str.c:152:4:  [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 out[I64_MAXLEN];
data/darkstat-3.0.719/str.c:217:4:  [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 out[2];
data/darkstat-3.0.719/bsd.c:117:31:  [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).
                return(dlen + strlen(s));
data/darkstat-3.0.719/conv.c:90: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).
    assert(left < strlen(src));   /* [left means must be smaller */
data/darkstat-3.0.719/conv.c:91:21:  [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).
    assert(right <= strlen(src)); /* right) means can be equal or smaller */
data/darkstat-3.0.719/conv.c:195:12:  [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).
   qslen = strlen(qs);
data/darkstat-3.0.719/conv.c:196: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).
   keylen = strlen(key);
data/darkstat-3.0.719/conv.c:247:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      if (read(lifeline[0], tmp, sizeof(tmp)) != 0) /* expecting EOF */
data/darkstat-3.0.719/db.c:82:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   numread = read(fd, dest, len);
data/darkstat-3.0.719/db.c:127:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   if (!read(fd, &tmp, sizeof(tmp))) return 0;
data/darkstat-3.0.719/db.c:141:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   if (!read(fd, &tmp, sizeof(tmp))) return 0;
data/darkstat-3.0.719/db.c:188:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   if (!read(fd, &tmp, sizeof(tmp))) return 0;
data/darkstat-3.0.719/dns.c:176:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   numread = read(dns_sock[PARENT], &reply, sizeof(reply));
data/darkstat-3.0.719/dns.c:317:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
         ssize_t numread = read(dns_sock[CHILD], &ip, sizeof(ip));
data/darkstat-3.0.719/err.c:46: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).
      pos = strlen(buf);
data/darkstat-3.0.719/err.c:152:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   if (read(lockpipe[0], buf, 1) != 1) {
data/darkstat-3.0.719/hosts_db.c:1423:23:  [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).
         int dnslen = strlen(b->u.host.dns);
data/darkstat-3.0.719/http.c:107:21:  [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).
    size_t i, len = strlen(url);
data/darkstat-3.0.719/http.c:137: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).
    out = xrealloc(out, strlen(out)+1);  /* dealloc what we don't need */
data/darkstat-3.0.719/http.c:191:14:  [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).
    urilen = strlen(uri);
data/darkstat-3.0.719/http.c:240:24:  [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).
        size_t delta = strlen(elem[i]);
data/darkstat-3.0.719/http.c:259:44:  [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 (pos != urilen) out = xrealloc(out, strlen(out)+1);
data/darkstat-3.0.719/http.c:467:36:  [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).
    bound1 = pos - conn->request + strlen(field);
data/darkstat-3.0.719/http.c:915:18:  [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).
        urllen = strlen(url);
data/darkstat-3.0.719/http.c:932:21:  [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).
    http_base_len = strlen(http_base_url);
data/darkstat-3.0.719/localip.c:62:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
         strncpy(before, addr_to_str(ips->addrs + *idx), INET6_ADDRSTRLEN);
data/darkstat-3.0.719/ncache.c:55: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).
      newlen = strlen(e->name) + strlen(name) + 2;
data/darkstat-3.0.719/ncache.c:55:34:  [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).
      newlen = strlen(e->name) + strlen(name) + 2;
data/darkstat-3.0.719/static/c-ify.c:16:14:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while ((c = getchar()) != EOF) {
data/darkstat-3.0.719/str.c:88:24:  [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).
   str_appendn(buf, s, strlen(s));
data/darkstat-3.0.719/str.c:232: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).
   len = strlen(format);
data/darkstat-3.0.719/str.h:52: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).
               (__builtin_constant_p(s) ? sizeof(s)-1 : strlen(s)) )

ANALYSIS SUMMARY:

Hits = 83
Lines analyzed = 9460 in approximately 0.31 seconds (30246 lines/second)
Physical Source Lines of Code (SLOC) = 6946
Hits@level = [0]  42 [1]  30 [2]  44 [3]   1 [4]   7 [5]   1
Hits@level+ = [0+] 125 [1+]  83 [2+]  53 [3+]   9 [4+]   8 [5+]   1
Hits/KSLOC@level+ = [0+] 17.996 [1+] 11.9493 [2+] 7.63029 [3+] 1.29571 [4+] 1.15174 [5+] 0.143968
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.