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/liboping-1.10.0/src/oping.h
Examining data/liboping-1.10.0/src/liboping.c
Examining data/liboping-1.10.0/src/oping.c

FINAL RESULTS:

data/liboping-1.10.0/src/liboping.c:101:86:  [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 dprintf(...) printf ("%s[%4i]: %-20s: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__)
data/liboping-1.10.0/src/oping.c:1619:27:  [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 HOST_PRINTF(...) printf(__VA_ARGS__)
data/liboping-1.10.0/src/oping.c:1941:8:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
			if (sscanf(line, "%s", host) != 1)
data/liboping-1.10.0/src/liboping.c:910:5:  [3] (random) srandom:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
				srandom (seed);
data/liboping-1.10.0/src/liboping.c:925:17:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	retval = (int) random ();
data/liboping-1.10.0/src/oping.c:685:13:  [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.
		optchar = getopt (argc, argv, "46c:hi:I:t:Q:f:D:Z:O:P:m:w:b"
data/liboping-1.10.0/src/liboping.c:152: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                     errmsg[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:467: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 payload_buffer[4096];
data/liboping-1.10.0/src/liboping.c:469: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 control_buffer[4096];
data/liboping-1.10.0/src/liboping.c:496:3:  [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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:682: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   buf[4096] = {0};
data/liboping-1.10.0/src/liboping.c:703: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 (data, ph->data, datalen);
data/liboping-1.10.0/src/liboping.c:726: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 buf[4096] = {0};
data/liboping-1.10.0/src/liboping.c:747: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 (data, ph->data, datalen);
data/liboping-1.10.0/src/liboping.c:772:3:  [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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:820: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 errbuf[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:859: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 errbuf[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:902: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).
		if ((fd = open ("/dev/urandom", O_RDONLY)) != -1)
data/liboping-1.10.0/src/liboping.c:918: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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:995:3:  [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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1020: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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1037: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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1054: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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1072: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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1257: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 errbuf[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1288: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 ((void *) obj->srcaddr, (const void *) ai_list->ai_addr,
data/liboping-1.10.0/src/liboping.c:1578:3:  [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[PING_ERRMSG_LEN];
data/liboping-1.10.0/src/liboping.c:1608: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 errmsg[64];
data/liboping-1.10.0/src/liboping.c:1618: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 (ph->addr, ai_ptr->ai_addr, ai_ptr->ai_addrlen);
data/liboping-1.10.0/src/liboping.c:1912: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(buffer,&iter->recv_qos,*buffer_len);
data/liboping-1.10.0/src/oping.c:165: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 host[NI_MAXHOST];
data/liboping-1.10.0/src/oping.c:166: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 addr[NI_MAXHOST];
data/liboping-1.10.0/src/oping.c:298: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 (ctx->history_by_value, ctx->history_by_time,
data/liboping-1.10.0/src/oping.c:704:18:  [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).
					new_count = atoi (optarg);
data/liboping-1.10.0/src/oping.c:769:20:  [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).
				new_send_ttl = atoi (optarg);
data/liboping-1.10.0/src/oping.c:820:42:  [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).
                                height = atoi (optarg);
data/liboping-1.10.0/src/oping.c:1441: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 host[NI_MAXHOST];
data/liboping-1.10.0/src/oping.c:1585: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            recv_qos_str[16];
data/liboping-1.10.0/src/oping.c:1909:3:  [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 line[256];
data/liboping-1.10.0/src/oping.c:1910:3:  [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[256];
data/liboping-1.10.0/src/oping.c:1916:13:  [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).
			infile = fopen(opt_filename, "r");
data/liboping-1.10.0/src/oping.c:2018:13:  [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).
		outfile = fopen (opt_outfile, "a");
data/liboping-1.10.0/src/liboping.c:181:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				strncpy (buf, temp, buflen);
data/liboping-1.10.0/src/liboping.c:183:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120). Risk is low because the source is a
  constant string.
				strncpy (buf, "strerror_r did not return "
data/liboping-1.10.0/src/liboping.c:697: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).
	datalen = strlen (ph->data);
data/liboping-1.10.0/src/liboping.c:741: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).
	datalen = strlen (ph->data);
data/liboping-1.10.0/src/liboping.c:906:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			if (read (fd, &seed, sizeof (seed)) != -1)
data/liboping-1.10.0/src/liboping.c:1033: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).
				obj->device, strlen (obj->device) + 1) != 0)
data/liboping-1.10.0/src/liboping.c:1797: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).
			*buffer_len = strlen (iter->username) + 1;
data/liboping-1.10.0/src/liboping.c:1803:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy (buffer, iter->username, orig_buffer_len);
data/liboping-1.10.0/src/liboping.c:1809: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).
			*buffer_len = strlen (iter->hostname) + 1;
data/liboping-1.10.0/src/liboping.c:1815:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy (buffer, iter->hostname, orig_buffer_len);
data/liboping-1.10.0/src/liboping.c:1890: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).
			*buffer_len = strlen (iter->data);
data/liboping-1.10.0/src/liboping.c:1893:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy ((char *) buffer, iter->data, orig_buffer_len);
data/liboping-1.10.0/src/oping.c:549: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).
	else if ((strncasecmp ("af", opt, strlen ("af")) == 0)
data/liboping-1.10.0/src/oping.c:550:8:  [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 (opt) == 4))
data/liboping-1.10.0/src/oping.c:583: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).
	else if ((strncasecmp ("cs", opt, strlen ("cs")) == 0)
data/liboping-1.10.0/src/oping.c:584:8:  [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 (opt) == 3))

ANALYSIS SUMMARY:

Hits = 58
Lines analyzed = 4158 in approximately 0.14 seconds (28864 lines/second)
Physical Source Lines of Code (SLOC) = 3279
Hits@level = [0]  44 [1]  16 [2]  36 [3]   3 [4]   3 [5]   0
Hits@level+ = [0+] 102 [1+]  58 [2+]  42 [3+]   6 [4+]   3 [5+]   0
Hits/KSLOC@level+ = [0+] 31.107 [1+] 17.6883 [2+] 12.8088 [3+] 1.82983 [4+] 0.914913 [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.