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/netkit-rusers-0.17/rup/err.h
Examining data/netkit-rusers-0.17/rup/err.c
Examining data/netkit-rusers-0.17/rup/rup.c
Examining data/netkit-rusers-0.17/version.h
Examining data/netkit-rusers-0.17/rpc.rusersd/daemon.c
Examining data/netkit-rusers-0.17/rpc.rusersd/daemon.h
Examining data/netkit-rusers-0.17/rpc.rusersd/rusersd.c
Examining data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c
Examining data/netkit-rusers-0.17/rusers/rusers.c

FINAL RESULTS:

data/netkit-rusers-0.17/rup/err.c:17:5:  [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, fmt, ap);
data/netkit-rusers-0.17/rup/err.c:27:5:  [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, fmt, ap);
data/netkit-rusers-0.17/rup/err.h:47:57:  [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.
#define __PFX(a,b)     __attribute__((noreturn, format (printf, a, b)))
data/netkit-rusers-0.17/rup/err.h:48:46:  [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.
#define __PF(a,b)     __attribute__((format (printf, a, b)))
data/netkit-rusers-0.17/rup/rup.c:314:15:  [3] (buffer) getopt:
  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 ((ch = getopt(argc, argv, "dshlt")) != -1)
data/netkit-rusers-0.17/rusers/rusers.c:289:15:  [3] (buffer) getopt:
  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 ((ch = getopt(argc, argv, "al")) != -1)
data/netkit-rusers-0.17/rpc.rusersd/daemon.c:63:7:  [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(_PATH_DEVNULL, O_RDWR, 0);
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:85: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.
typedef char ut_line_t[UT_LINESIZE+1];
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:86: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.
typedef char ut_name_t[UT_NAMESIZE+1];
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:87: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.
typedef char ut_host_t[UT_HOSTSIZE+1];
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:154: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 devname[PATH_MAX];
data/netkit-rusers-0.17/rusers/rusers.c:119:2:  [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[32], idle_time[64], remote[64], local[64];
data/netkit-rusers-0.17/rusers/rusers.c:149:4:  [2] (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). Risk is low because the source is a constant string.
			strcpy(idle_time, "??");
data/netkit-rusers-0.17/rusers/rusers.c:248:2:  [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(&addr.sin_addr, hp->h_addr, hp->h_length);
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:268:25:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
                        strncpy(line[nusers], uptr->ut_line, 
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:272:25:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
                        strncpy(name[nusers], uptr->ut_name, 
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:276:25:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
                        strncpy(host[nusers], uptr->ut_host, 
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:310:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(tgt, src, len);
data/netkit-rusers-0.17/rpc.rusersd/rusers_proc.c:348:25:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
                        strncpy(utmp_idle[nusers].ui_utmp.ut_name, 
data/netkit-rusers-0.17/rusers/rusers.c:143:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(date, ctime(&tmptime) + 4, sizeof(date)-1);
data/netkit-rusers-0.17/rusers/rusers.c:151:4:  [1] (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). Risk is low because the source is a constant character.
			strcpy(idle_time, "");
data/netkit-rusers-0.17/rusers/rusers.c:173:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(remote, up->uia_arr[x]->ui_utmp.ut_host,
data/netkit-rusers-0.17/rusers/rusers.c:177:7:  [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(remote) != 0)
data/netkit-rusers-0.17/rusers/rusers.c:183:15:  [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 len1 = strlen(host);
data/netkit-rusers-0.17/rusers/rusers.c:184:15:  [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 len2 = strlen(up->uia_arr[x]->ui_utmp.ut_line);

ANALYSIS SUMMARY:

Hits = 25
Lines analyzed = 1435 in approximately 0.08 seconds (18256 lines/second)
Physical Source Lines of Code (SLOC) = 1024
Hits@level = [0]  43 [1]  11 [2]   8 [3]   2 [4]   4 [5]   0
Hits@level+ = [0+]  68 [1+]  25 [2+]  14 [3+]   6 [4+]   4 [5+]   0
Hits/KSLOC@level+ = [0+] 66.4062 [1+] 24.4141 [2+] 13.6719 [3+] 5.85938 [4+] 3.90625 [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.