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/cfingerd-1.4.3/src/configure.c
Examining data/cfingerd-1.4.3/src/defines.h
Examining data/cfingerd-1.4.3/src/errors.c
Examining data/cfingerd-1.4.3/src/getutent.c
Examining data/cfingerd-1.4.3/src/getutent.h
Examining data/cfingerd-1.4.3/src/privs.h
Examining data/cfingerd-1.4.3/src/strmcpy.c
Examining data/cfingerd-1.4.3/src/version.h
Examining data/cfingerd-1.4.3/src/wildmat.c
Examining data/cfingerd-1.4.3/src/fakeuser.c
Examining data/cfingerd-1.4.3/src/internal.c
Examining data/cfingerd-1.4.3/src/log.c
Examining data/cfingerd-1.4.3/src/main.c
Examining data/cfingerd-1.4.3/src/parse.c
Examining data/cfingerd-1.4.3/src/proto.h
Examining data/cfingerd-1.4.3/src/rfc1413.c
Examining data/cfingerd-1.4.3/src/search.c
Examining data/cfingerd-1.4.3/src/signal.c
Examining data/cfingerd-1.4.3/src/standard.c
Examining data/cfingerd-1.4.3/src/userlist.c
Examining data/cfingerd-1.4.3/src/util.c
Examining data/cfingerd-1.4.3/src/version.c
Examining data/cfingerd-1.4.3/src/cfingerd.h
Examining data/cfingerd-1.4.3/src/options.c
Examining data/cfingerd-1.4.3/userlist/initialize.c
Examining data/cfingerd-1.4.3/userlist/options.c
Examining data/cfingerd-1.4.3/userlist/proto.h
Examining data/cfingerd-1.4.3/userlist/display.c
Examining data/cfingerd-1.4.3/userlist/idle.c
Examining data/cfingerd-1.4.3/userlist/main.c
Examining data/cfingerd-1.4.3/userlist/userlist.h

FINAL RESULTS:

data/cfingerd-1.4.3/src/util.c:167:18:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
		    displine = strncat(displine, (char *) allocation, DISPLEN);
data/cfingerd-1.4.3/src/util.c:195:15:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			displine = strncat(displine, "$", DISPLEN);
data/cfingerd-1.4.3/src/util.c:212:19:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			    displine = strncat(displine, (char *) bleah, DISPLEN);
data/cfingerd-1.4.3/src/util.c:228:19:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			    displine = strncat(displine, (char *) bleah, DISPLEN);
data/cfingerd-1.4.3/src/util.c:238:19:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			    displine = strncat(displine, ident_user, DISPLEN);
data/cfingerd-1.4.3/src/util.c:254:19:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			    displine = strncat(displine, (char *) COMPILE_DT, DISPLEN);
data/cfingerd-1.4.3/src/util.c:264:19:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			    displine = strncat(displine, (char *) VERSION, DISPLEN);
data/cfingerd-1.4.3/src/cfingerd.h:48:9:  [4] (format) snprintf:
  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.
#define snprintf __snprintf
data/cfingerd-1.4.3/src/configure.c:767:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(prog_config.mailbox_file, "%s/$USER", MAIL_SPOOL_DIR);
data/cfingerd-1.4.3/src/defines.h:22:8:  [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(errors[x].error); \
data/cfingerd-1.4.3/src/internal.c:37:6:  [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(prog_config.services.display_string,
data/cfingerd-1.4.3/src/main.c:142:7:  [4] (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).
      strcpy (line, cp);
data/cfingerd-1.4.3/src/main.c:143:7:  [4] (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).
      strcpy (username, line);
data/cfingerd-1.4.3/src/main.c:262:2:  [4] (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).
	strcpy(remote_addr, ACTUAL_LOOPBACK);
data/cfingerd-1.4.3/src/parse.c:93:7:  [4] (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).
      strcpy (parsed, username);
data/cfingerd-1.4.3/src/search.c:48:6:  [4] (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).
	    strcpy (searchname, xp);
data/cfingerd-1.4.3/src/search.c:141:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(fn, "%s/%s", homedir, prog_config.no_finger_file);
data/cfingerd-1.4.3/src/search.c:144:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(fn, "%s/.nofinger", homedir);
data/cfingerd-1.4.3/src/standard.c:103:2:  [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(formatter, prog_config.p_strings[t2], user?user:"");
data/cfingerd-1.4.3/src/standard.c:387:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(dev_file, "/dev/%s", tty);
data/cfingerd-1.4.3/src/standard.c:547:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(devfile, "/dev/%s", (char *) ut->ut_line);
data/cfingerd-1.4.3/src/standard.c:786:7:  [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(nomailmsg);
data/cfingerd-1.4.3/src/standard.c:792:7:  [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(nomailmsg);
data/cfingerd-1.4.3/src/standard.c:798:7:  [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(nomailmsg);
data/cfingerd-1.4.3/src/standard.c:899:4:  [4] (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).
			strcpy (other, cp);
data/cfingerd-1.4.3/src/standard.c:904:4:  [4] (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).
			strcpy (home_phone, cp);
data/cfingerd-1.4.3/src/standard.c:912:6:  [4] (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).
	    strcpy (username, cp);
data/cfingerd-1.4.3/src/standard.c:918:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf(fn, "%s/%s", pwent->pw_dir, prog_config.no_finger_file);
data/cfingerd-1.4.3/src/standard.c:921:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(fn, "%s/.nofinger", pwent->pw_dir);
data/cfingerd-1.4.3/src/standard.c:1009:2:  [4] (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).
	strcpy(uname, username + nums);
data/cfingerd-1.4.3/src/standard.c:1010:2:  [4] (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).
	strcpy(username, uname);
data/cfingerd-1.4.3/src/strmcpy.c:39:12:  [4] (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).
    (void) strcpy(*t, s);
data/cfingerd-1.4.3/src/util.c:214:8:  [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((char *) bleah);
data/cfingerd-1.4.3/src/util.c:230:8:  [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((char *) bleah);
data/cfingerd-1.4.3/src/util.c:468:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(ret, "%s.%s", (char *) hostname, (char *) domname);
data/cfingerd-1.4.3/src/util.c:594:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat (result, line);
data/cfingerd-1.4.3/src/util.c:604:9:  [4] (shell) popen:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	file = popen(cmd, "r");
data/cfingerd-1.4.3/userlist/display.c:39:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(ret, "%s", (char *) hostname);
data/cfingerd-1.4.3/userlist/display.c:99:4:  [4] (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).
			strcpy (username, cp);
data/cfingerd-1.4.3/userlist/userlist.h:51:9:  [4] (format) snprintf:
  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.
#define snprintf __snprintf
data/cfingerd-1.4.3/src/cfingerd.h:228: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 *header[20];		/* Five headers for the top display */
data/cfingerd-1.4.3/src/cfingerd.h:253: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 *rejected[80];		/* Rejected hosts */
data/cfingerd-1.4.3/src/cfingerd.h:254: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 *trusted[80];		/* Trusted hosts */
data/cfingerd-1.4.3/src/cfingerd.h:255: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 *forward[80];		/* Forwarded hosts */
data/cfingerd-1.4.3/src/cfingerd.h:256: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 *p_strings[80];	/* Program-related context print strings */
data/cfingerd-1.4.3/src/cfingerd.h:257: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 *finger_sites[80];	/* Finger sites that are queried */
data/cfingerd-1.4.3/src/cfingerd.h:258: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 *siglist[24];		/* Signal names and their errors */
data/cfingerd-1.4.3/src/cfingerd.h:259: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 stime_format[25];	/* Short time format string */
data/cfingerd-1.4.3/src/cfingerd.h:260: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 ltime_format[25];	/* Long time format string */
data/cfingerd-1.4.3/src/configure.c:221:17:  [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).
		    logfile = fopen(filename, "a+");
data/cfingerd-1.4.3/src/configure.c:629:39:  [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).
		    prog_config.services.name_pos = atoi(num);
data/cfingerd-1.4.3/src/configure.c:631: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).
		    prog_config.services.service_pos = atoi(num);
data/cfingerd-1.4.3/src/configure.c:633:41:  [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).
		    prog_config.services.search_pos = atoi(num);
data/cfingerd-1.4.3/src/configure.c:686:12:  [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 = fopen(CFINGERD_CONF, "r");
data/cfingerd-1.4.3/src/configure.c:728:2:  [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(prog_config.trusted[0], "localhost");
data/cfingerd-1.4.3/src/configure.c:734:2:  [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(prog_config.rejected[0], "0.0.0.0");
data/cfingerd-1.4.3/src/configure.c:740:2:  [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(prog_config.forward[0], "localhost");
data/cfingerd-1.4.3/src/configure.c:752:2:  [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(prog_config.fusers[fakeuser_num].user, "None");
data/cfingerd-1.4.3/src/configure.c:753:2:  [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(prog_config.fusers[fakeuser_num].script, "/dev/null");
data/cfingerd-1.4.3/src/configure.c:754:2:  [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(prog_config.fusers[fakeuser_num].description, "None");
data/cfingerd-1.4.3/src/configure.c:761:2:  [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(prog_config.finger_sites[num_finger_sites], "localhost");
data/cfingerd-1.4.3/src/fakeuser.c:68: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 *data[5];
data/cfingerd-1.4.3/src/fakeuser.c:115:6:  [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 send_string[80];
data/cfingerd-1.4.3/src/getutent.c:67:17:  [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 ((utmp_fd = open(_PATH_UTMP, O_RDONLY)) < 0) {
data/cfingerd-1.4.3/src/log.c:47: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 filename[80];
data/cfingerd-1.4.3/src/log.c:63: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).
	    file = fopen(filename, "w");
data/cfingerd-1.4.3/src/log.c:65:9:  [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 = fopen(filename, "a+");
data/cfingerd-1.4.3/src/main.c:24:1:  [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 ip_address[INET6_ADDRSTRLEN] = "";
data/cfingerd-1.4.3/src/main.c:25:1:  [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 remote_addr[INET6_ADDRSTRLEN] = "";
data/cfingerd-1.4.3/src/main.c:64: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 line[100], username[80], syslog_str[200];
data/cfingerd-1.4.3/src/main.c:258:2:  [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 (ident_user, "emulated");
data/cfingerd-1.4.3/src/main.c:260:2:  [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(remote_addr,"127.0.0.1");
data/cfingerd-1.4.3/src/options.c:71: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 ("/dev/null", O_RDWR);
data/cfingerd-1.4.3/src/options.c:177:46:  [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.
	    syslog(LOG_NOTICE, "Emulated: \"%s\"", (char *) argv[2]);
data/cfingerd-1.4.3/src/options.c:178:46:  [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.
	    printf("[127.0.0.1 : Username: %s]\n", (char *) argv[2]);
data/cfingerd-1.4.3/src/rfc1413.c:39: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 buffer[1024], buf[INPUTLEN], uname[UNAMELEN], *bleah;
data/cfingerd-1.4.3/src/search.c:21: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 username[80];
data/cfingerd-1.4.3/src/search.c:22: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 realname[80];
data/cfingerd-1.4.3/src/search.c:85:12:  [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 = fopen("/etc/passwd", "r");
data/cfingerd-1.4.3/src/search.c:89:6:  [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 crap[80], un[80], rn[300], crappp[300], homedir[80], uid[10], gid[10];
data/cfingerd-1.4.3/src/search.c:90:6:  [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 Un[80], Rn[80];
data/cfingerd-1.4.3/src/search.c:91:6:  [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 fn[100];
data/cfingerd-1.4.3/src/search.c:108:12:  [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).
	    Uid = atoi(uid);
data/cfingerd-1.4.3/src/search.c:109:12:  [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).
	    Gid = atoi(gid);
data/cfingerd-1.4.3/src/standard.c:33: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 tty[UT_LINESIZE];
data/cfingerd-1.4.3/src/standard.c:34: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 locale[UT_HOSTSIZE];
data/cfingerd-1.4.3/src/standard.c:89: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 formatter[80];
data/cfingerd-1.4.3/src/standard.c:120:9:  [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).
    f = fopen(filename, "r");
data/cfingerd-1.4.3/src/standard.c:148: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 d[128];
data/cfingerd-1.4.3/src/standard.c:206: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 d[128];
data/cfingerd-1.4.3/src/standard.c:249: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 formatted[80];
data/cfingerd-1.4.3/src/standard.c:260:10:  [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(WTMPFILE, O_RDONLY);
data/cfingerd-1.4.3/src/standard.c:385: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 dev_file[80];
data/cfingerd-1.4.3/src/standard.c:493:6:  [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 formatted[80];
data/cfingerd-1.4.3/src/standard.c:498:19:  [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.
		    formatted, (char *) tty_list[i].tty);
data/cfingerd-1.4.3/src/standard.c:500: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.
	    show_idle((char *) tty_list[i].tty);
data/cfingerd-1.4.3/src/standard.c:504:16:  [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.
		    (strlen((char *) tty_list[i].locale) > 1) ? " from" : "",
data/cfingerd-1.4.3/src/standard.c:505:16:  [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.
		    (strlen((char *) tty_list[i].locale) > 1) ?
data/cfingerd-1.4.3/src/standard.c:506: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 *) tty_list[i].locale : "");
data/cfingerd-1.4.3/src/standard.c:540: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 devfile[80];
data/cfingerd-1.4.3/src/standard.c:599: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 mailfile[200];
data/cfingerd-1.4.3/src/standard.c:619: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 formatted[80];
data/cfingerd-1.4.3/src/standard.c:667: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 formatted2[80];
data/cfingerd-1.4.3/src/standard.c:691: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 mailfile[80];
data/cfingerd-1.4.3/src/standard.c:712:6:  [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 formatted[80];
data/cfingerd-1.4.3/src/standard.c:713:6:  [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[80];
data/cfingerd-1.4.3/src/standard.c:724:12:  [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).
	    qmf = fopen(mailfile, "r");
data/cfingerd-1.4.3/src/standard.c:777: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.
			    char formatted2[80];
data/cfingerd-1.4.3/src/standard.c:817: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 formatted2[80];
data/cfingerd-1.4.3/src/standard.c:839: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 fn[80];
data/cfingerd-1.4.3/src/standard.c:841: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 acctname[100];
data/cfingerd-1.4.3/src/standard.c:933:17:  [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 ((file = fopen(fn, "r")) != NULL) {
data/cfingerd-1.4.3/src/standard.c:994: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 uname[600];
data/cfingerd-1.4.3/src/userlist.c:43: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 cmdline[128];
data/cfingerd-1.4.3/src/util.c:104: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(proc, "cfingerd[%d]", pid);
data/cfingerd-1.4.3/src/util.c:153: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 command[80], *displine;
data/cfingerd-1.4.3/src/util.c:163: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 allocation[2];
data/cfingerd-1.4.3/src/util.c:206: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 bleah[80];
data/cfingerd-1.4.3/src/util.c:222: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 bleah[80];
data/cfingerd-1.4.3/src/util.c:314: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 line[128];
data/cfingerd-1.4.3/src/util.c:372: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 acctname[100];
data/cfingerd-1.4.3/src/util.c:381: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 qmfile[1024];
data/cfingerd-1.4.3/src/util.c:448: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(ret, "%d.%d.%d.%d", pair1, pair2, pair3, pair4);
data/cfingerd-1.4.3/src/util.c:460: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 hostname[80], domname[80];
data/cfingerd-1.4.3/src/util.c:566: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 line[600];
data/cfingerd-1.4.3/src/util.c:636:10:  [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).
	return (fopen (filename, "r"));
data/cfingerd-1.4.3/userlist/display.c:20: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(ret, "%d.%d.%d.%d", p1, p2, p3, p4);
data/cfingerd-1.4.3/userlist/display.c:28: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 hostname[STRLEN];
data/cfingerd-1.4.3/userlist/display.c:50:12:  [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 = fopen(filename, "r");
data/cfingerd-1.4.3/userlist/display.c:72: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 console[30];
data/cfingerd-1.4.3/userlist/display.c:75:14:  [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.
	if (strlen((char *) tty_list[i].locale) == 0)
data/cfingerd-1.4.3/userlist/display.c:80:14:  [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.
	if (strlen((char *) tty_list[i].username) > 1) {
data/cfingerd-1.4.3/userlist/display.c:82:6:  [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 ru[9], fn[STRLEN];
data/cfingerd-1.4.3/userlist/display.c:104:24:  [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.
	    idle = calc_idle((char *) tty_list[i].line);
data/cfingerd-1.4.3/userlist/display.c:112:12:  [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 *) tty_list[i].tty, console);
data/cfingerd-1.4.3/userlist/display.c:121: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.
			   (char *) tty_list[i].tty, console);
data/cfingerd-1.4.3/userlist/idle.c:19:12:  [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 idledisp[STRLEN];
data/cfingerd-1.4.3/userlist/idle.c:20: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 dev_file[STRLEN];
data/cfingerd-1.4.3/src/configure.c:328: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).
    for (i = 0; i < strlen(str); i++)
data/cfingerd-1.4.3/src/configure.c:444:5:  [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(finger_display[x].item)))) {
data/cfingerd-1.4.3/src/configure.c:507:5:  [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(internal_config[x].item)))) {
data/cfingerd-1.4.3/src/configure.c:551:5:  [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(finger_strings[x].item)))) {
data/cfingerd-1.4.3/src/configure.c:579:5:  [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(internal_strings[x].item)))) {
data/cfingerd-1.4.3/src/configure.c:602: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(element) > 3) {
data/cfingerd-1.4.3/src/configure.c:603:17:  [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).
		    counter = strlen(element);
data/cfingerd-1.4.3/src/configure.c:654:5:  [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(signal_strings[x].item)))) {
data/cfingerd-1.4.3/src/configure.c:695:23:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	    char *line, ch = fgetc(file);
data/cfingerd-1.4.3/src/fakeuser.c:29: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).
    for (i = 0; i < strlen(username); i++)
data/cfingerd-1.4.3/src/fakeuser.c:46:11:  [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((char *) username);
data/cfingerd-1.4.3/src/fakeuser.c:93: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).
	    data[i] = (char *) malloc(strlen(username)+1);
data/cfingerd-1.4.3/src/getutent.c:91:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    if ((readval = read(utmp_fd, &s_utmp, sizeof(s_utmp))) < sizeof(s_utmp)) {
data/cfingerd-1.4.3/src/main.c:45: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).
    for (i = 0; i < strlen(string); i++)
data/cfingerd-1.4.3/src/main.c:46: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).
	for (x = 0; x < strlen(match); x++)
data/cfingerd-1.4.3/src/main.c:92:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(username, argv[2], sizeof(username));
data/cfingerd-1.4.3/src/main.c:139: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(username) && !strncmp(username, "/W ", 3) ) {
data/cfingerd-1.4.3/src/main.c:221:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(remote_addr, ip_address, INET6_ADDRSTRLEN);
data/cfingerd-1.4.3/src/main.c:228:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(remote_addr, host_ent->h_name, INET6_ADDRSTRLEN);
data/cfingerd-1.4.3/src/main.c:242:43:  [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).
	    !strncasecmp(remote_addr, localhost, strlen(localhost)))
data/cfingerd-1.4.3/src/parse.c:30: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).
	for (i = 0; i < strlen(str); i++)
data/cfingerd-1.4.3/src/parse.c:54: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).
    int length = strlen(username);
data/cfingerd-1.4.3/src/parse.c:91:35:  [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 ((parsed = (char *)malloc (strlen(username)+1)) != NULL) {
data/cfingerd-1.4.3/src/parse.c:92:26:  [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).
      memset (parsed, 0, strlen(username)+1);
data/cfingerd-1.4.3/src/parse.c:131:52:  [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 (!strncmp (username, "userlist", 8) && strlen (username) == 8)
data/cfingerd-1.4.3/src/rfc1413.c:106:22:  [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).
    write(j, buffer, strlen(buffer));
data/cfingerd-1.4.3/src/rfc1413.c:109:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    if (read(j, buf, 256) <= 0) {
data/cfingerd-1.4.3/src/rfc1413.c:131: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).
	for (xp=uname; *cp != '\0' && *cp!='\r'&&*cp!='\r'&&*cp!='\n'&&(strlen(uname)+1)<sizeof(uname); cp++)
data/cfingerd-1.4.3/src/rfc1413.c:135: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(uname)) {
data/cfingerd-1.4.3/src/search.c:46: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).
	if ((searchname = (char *)malloc (strlen(xp)+1)) != NULL) {
data/cfingerd-1.4.3/src/search.c:47:29:  [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).
	    memset (searchname, 0, strlen(xp)+1);
data/cfingerd-1.4.3/src/search.c:59: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((char *) searchname) == 0) {
data/cfingerd-1.4.3/src/search.c:140:11:  [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(homedir)+strlen(prog_config.no_finger_file)+1 < sizeof(fn)))
data/cfingerd-1.4.3/src/search.c:140:27:  [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(homedir)+strlen(prog_config.no_finger_file)+1 < sizeof(fn)))
data/cfingerd-1.4.3/src/search.c:143:11:  [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(homedir)+10 < sizeof(fn))
data/cfingerd-1.4.3/src/search.c:159:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(searches[num_searches].realname, Rn, sizeof(searches[num_searches].realname));
data/cfingerd-1.4.3/src/search.c:160:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(searches[num_searches].username, Un, sizeof(searches[num_searches].username));
data/cfingerd-1.4.3/src/standard.c:101:63:  [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).
	snprintf(formatter, sizeof(formatter), "%%s%%-%d.%ds", (36 - strlen(prog_config.p_strings[t2])),
data/cfingerd-1.4.3/src/standard.c:265:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	    if (read(fd, &ut, sizeof(struct utmp)) != sizeof (struct utmp))
data/cfingerd-1.4.3/src/standard.c:269:46:  [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 (!strncmp(user, (char *) ut.ut_name, strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:272:46:  [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 (!strncmp(user, (char *) ut.ut_user, strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:273:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(last_tty.tty, ut.ut_line, UT_LINESIZE - 1);
data/cfingerd-1.4.3/src/standard.c:276:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(last_tty.locale, ut.ut_host, UT_HOSTSIZE - 1);
data/cfingerd-1.4.3/src/standard.c:296:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (read(fd, &lastlog, sizeof(lastlog)) == sizeof(lastlog)) {
data/cfingerd-1.4.3/src/standard.c:298:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(last_tty.tty, lastlog.ll_line, UT_LINESIZE - 1);
data/cfingerd-1.4.3/src/standard.c:300:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(last_tty.locale, lastlog.ll_host, UT_HOSTSIZE - 1);
data/cfingerd-1.4.3/src/standard.c:327: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).
	    (strlen((char *) last_tty.locale) > 1) ? " from" : " ",
data/cfingerd-1.4.3/src/standard.c:328: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).
	    (strlen((char *) last_tty.locale) > 1) ?
data/cfingerd-1.4.3/src/standard.c:504: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((char *) tty_list[i].locale) > 1) ? " from" : "",
data/cfingerd-1.4.3/src/standard.c:505: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((char *) tty_list[i].locale) > 1) ?
data/cfingerd-1.4.3/src/standard.c:532:43:  [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 (!strncmp(user, (char *) ut->ut_name, strlen(user)) &&
data/cfingerd-1.4.3/src/standard.c:533:4:  [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((char *) ut->ut_name) == strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:533: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).
		(strlen((char *) ut->ut_name) == strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:536:47:  [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 (!strncmp(user, (char *) ut->ut_user, strlen(user)) &&
data/cfingerd-1.4.3/src/standard.c:537:4:  [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((char *) ut->ut_user) == strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:537: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).
		(strlen((char *) ut->ut_user) == strlen(user))) {
data/cfingerd-1.4.3/src/standard.c:543:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		    strncpy(tty_list[times_on].tty, (char *) ut->ut_line, sizeof(tty_list[times_on].tty));
data/cfingerd-1.4.3/src/standard.c:544:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		    strncpy(tty_list[times_on].tty, (char *) ut->ut_line, UT_LINESIZE - 1);
data/cfingerd-1.4.3/src/standard.c:568:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		    strncpy(tty_list[times_on].locale, (char *) ut->ut_host, UT_HOSTSIZE - 1);
data/cfingerd-1.4.3/src/standard.c:628:52:  [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).
	for (cp=prog_config.mailbox_file,xp=mailfile;*cp&&strlen(mailfile)<sizeof(mailfile)-1;cp++) {
data/cfingerd-1.4.3/src/standard.c:634: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).
		    for (yp=user;*yp&&strlen(mailfile)<sizeof(mailfile)-1;yp++)
data/cfingerd-1.4.3/src/standard.c:642: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).
			for (yp=pwent->pw_dir;*yp&&strlen(mailfile)<sizeof(mailfile)-1;yp++)
data/cfingerd-1.4.3/src/standard.c:753: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).
	    if(line[strlen(line) - 1] == '\n')
data/cfingerd-1.4.3/src/standard.c:754: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).
		line[strlen(line) - 1] = '\0';
data/cfingerd-1.4.3/src/standard.c:758: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).
	    if(line[strlen(line) - 1] != '/') {
data/cfingerd-1.4.3/src/standard.c:849:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
        strncpy(acctname, user, sizeof(acctname) -1);
data/cfingerd-1.4.3/src/standard.c:874:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy (username, cp, x-cp);
data/cfingerd-1.4.3/src/standard.c:880:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy (room, cp, x-cp);
data/cfingerd-1.4.3/src/standard.c:886:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		    strncpy (work_phone, cp, x-cp);
data/cfingerd-1.4.3/src/standard.c:892:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy (home_phone, cp, x-cp);
data/cfingerd-1.4.3/src/standard.c:897: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).
		    if ((other = (char *)malloc (strlen(cp)+1)) != NULL) {
data/cfingerd-1.4.3/src/standard.c:898:22:  [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).
			memset (other, 0, strlen(cp)+1);
data/cfingerd-1.4.3/src/standard.c:902:41:  [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 ((home_phone = (char *)malloc (strlen(cp)+1)) != NULL) {
data/cfingerd-1.4.3/src/standard.c:903:27:  [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).
			memset (home_phone, 0, strlen(cp)+1);
data/cfingerd-1.4.3/src/standard.c:910: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).
	if ((username = (char *)malloc (strlen(cp)+1)) != NULL) {
data/cfingerd-1.4.3/src/standard.c:911:27:  [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).
	    memset (username, 0, strlen(cp)+1);
data/cfingerd-1.4.3/src/standard.c:917:6:  [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(pwent->pw_dir)+strlen(prog_config.no_finger_file)+1 < sizeof(fn)))
data/cfingerd-1.4.3/src/standard.c:917:28:  [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(pwent->pw_dir)+strlen(prog_config.no_finger_file)+1 < sizeof(fn)))
data/cfingerd-1.4.3/src/standard.c:920:11:  [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(pwent->pw_dir)+10 < sizeof(fn))
data/cfingerd-1.4.3/src/strmcpy.c:32:17:  [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 = malloc(strlen(s) + 1);
data/cfingerd-1.4.3/src/util.c:119:2:  [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 (prog_config.stime_format, "%H:%M (%Z)", sizeof (prog_config.stime_format));
data/cfingerd-1.4.3/src/util.c:120:2:  [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 (prog_config.ltime_format, "%a %b %d %H:%M (%Z)", sizeof (prog_config.ltime_format));
data/cfingerd-1.4.3/src/util.c:122:2:  [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 (prog_config.stime_format, "%I:%M %p (%Z)", sizeof (prog_config.stime_format));
data/cfingerd-1.4.3/src/util.c:123:2:  [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 (prog_config.ltime_format, "%a %b %d %I:%M %p (%Z)", sizeof (prog_config.ltime_format));
data/cfingerd-1.4.3/src/util.c:159:17:  [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).
    while(pos < strlen(line)) {
data/cfingerd-1.4.3/src/util.c:187: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).
		if (pos >= strlen(line))
data/cfingerd-1.4.3/src/util.c:202: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(command) >= 4) {
data/cfingerd-1.4.3/src/util.c:204:5:  [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(command) == 4)) {
data/cfingerd-1.4.3/src/util.c:220:5:  [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(command) == 4)) {
data/cfingerd-1.4.3/src/util.c:236:5:  [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(command) == 5)) {
data/cfingerd-1.4.3/src/util.c:246:5:  [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(command) == 6)) {
data/cfingerd-1.4.3/src/util.c:252:5:  [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(command) == 16)) {
data/cfingerd-1.4.3/src/util.c:262:5:  [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(command) == 7)) {
data/cfingerd-1.4.3/src/util.c:272:5:  [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(command) == 4) &&
data/cfingerd-1.4.3/src/util.c:294:26:  [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 center_dist = 40 - (strlen(displine) / 2) - 1;
data/cfingerd-1.4.3/src/util.c:374:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(acctname, username, 100);
data/cfingerd-1.4.3/src/util.c:383:29:  [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).
                , &acctname[strlen(acctname) + 1]);
data/cfingerd-1.4.3/src/util.c:465:27:  [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).
    ret = (char *) malloc(strlen((char *) hostname) +
data/cfingerd-1.4.3/src/util.c:466:6:  [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((char *) domname) + 2);
data/cfingerd-1.4.3/src/util.c:589:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while ((read (fd[0], line, sizeof (line)-1)) > 0) {
data/cfingerd-1.4.3/src/util.c:590: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).
	    if ((size += strlen (line)) < MAX_POPEN_BUF) {
data/cfingerd-1.4.3/src/util.c:610: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).
		write (fd[1], line, strlen (line));
data/cfingerd-1.4.3/src/util.c:621: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 (result)) {
data/cfingerd-1.4.3/userlist/display.c:37:27:  [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).
    ret = (char *) malloc(strlen((char *) hostname) + 1);
data/cfingerd-1.4.3/userlist/display.c:75:6:  [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((char *) tty_list[i].locale) == 0)
data/cfingerd-1.4.3/userlist/display.c:80:6:  [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((char *) tty_list[i].username) > 1) {
data/cfingerd-1.4.3/userlist/display.c:87:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(ru, tty_list[i].username, sizeof(ru)-1);
data/cfingerd-1.4.3/userlist/display.c:97:39:  [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 ((username = (char *)malloc (strlen(cp)+1)) != NULL) {
data/cfingerd-1.4.3/userlist/display.c:98: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).
			memset (username, 0, strlen(cp)+1);
data/cfingerd-1.4.3/userlist/idle.c:28:2:  [1] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source is a constant character.
	sprintf(idledisp, "-");
data/cfingerd-1.4.3/userlist/initialize.c:23:27:  [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).
    ret = (char *) malloc(strlen(str));
data/cfingerd-1.4.3/userlist/initialize.c:24: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).
    for (i = 0; i < strlen(str); i++)
data/cfingerd-1.4.3/userlist/initialize.c:63:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(tty_list[times_on].username, (char *) ut->ut_name, ULIST_UNAME);
data/cfingerd-1.4.3/userlist/initialize.c:65:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(tty_list[times_on].username, (char *) ut->ut_user, ULIST_UNAME);
data/cfingerd-1.4.3/userlist/initialize.c:68:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(tty_list[times_on].tty, cp, ULIST_TTY);
data/cfingerd-1.4.3/userlist/initialize.c:78:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(tty_list[times_on].locale, cp, ULIST_LOCALE);
data/cfingerd-1.4.3/userlist/initialize.c:79: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 ((char *) ut->ut_host) > ULIST_LINE)
data/cfingerd-1.4.3/userlist/initialize.c:82:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	    strncpy(tty_list[times_on].line, (char *) ut->ut_line, ULIST_LINE);

ANALYSIS SUMMARY:

Hits = 256
Lines analyzed = 5669 in approximately 0.22 seconds (25380 lines/second)
Physical Source Lines of Code (SLOC) = 3777
Hits@level = [0] 258 [1] 118 [2]  98 [3]   0 [4]  33 [5]   7
Hits@level+ = [0+] 514 [1+] 256 [2+] 138 [3+]  40 [4+]  40 [5+]   7
Hits/KSLOC@level+ = [0+] 136.087 [1+] 67.7787 [2+] 36.5369 [3+] 10.5904 [4+] 10.5904 [5+] 1.85332
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.