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/radcli-1.2.11/include/freeradius-client.h Examining data/radcli-1.2.11/include/includes.h Examining data/radcli-1.2.11/include/messages.h Examining data/radcli-1.2.11/include/pathnames.h Examining data/radcli-1.2.11/include/radcli/radcli.h Examining data/radcli-1.2.11/include/radiusclient-ng.h Examining data/radcli-1.2.11/lib/aaa_ctx.c Examining data/radcli-1.2.11/lib/avpair.c Examining data/radcli-1.2.11/lib/buildreq.c Examining data/radcli-1.2.11/lib/config.c Examining data/radcli-1.2.11/lib/dict.c Examining data/radcli-1.2.11/lib/hmac.c Examining data/radcli-1.2.11/lib/hmac.h Examining data/radcli-1.2.11/lib/ip_util.c Examining data/radcli-1.2.11/lib/log.c Examining data/radcli-1.2.11/lib/md5.c Examining data/radcli-1.2.11/lib/md5.h Examining data/radcli-1.2.11/lib/nettle-hmac.c Examining data/radcli-1.2.11/lib/options.h Examining data/radcli-1.2.11/lib/rc-hmac.h Examining data/radcli-1.2.11/lib/rc-md5.c Examining data/radcli-1.2.11/lib/rc-md5.h Examining data/radcli-1.2.11/lib/sendserver.c Examining data/radcli-1.2.11/lib/tls.c Examining data/radcli-1.2.11/lib/tls.h Examining data/radcli-1.2.11/lib/util.c Examining data/radcli-1.2.11/lib/util.h Examining data/radcli-1.2.11/src/common.c Examining data/radcli-1.2.11/src/common.h Examining data/radcli-1.2.11/src/radacct.c Examining data/radcli-1.2.11/src/radembedded.c Examining data/radcli-1.2.11/src/radembedded_dict.c Examining data/radcli-1.2.11/src/radexample.c Examining data/radcli-1.2.11/src/radius.c Examining data/radcli-1.2.11/src/radiusclient.c Examining data/radcli-1.2.11/src/radstatus.c Examining data/radcli-1.2.11/tests/avpair.c Examining data/radcli-1.2.11/tests/tls-restart.c FINAL RESULTS: data/radcli-1.2.11/include/includes.h:48:10: [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(buf, len, format, ...) sprintf(buf, format, __VA_ARGS__) data/radcli-1.2.11/include/includes.h:48:42: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. # define snprintf(buf, len, format, ...) sprintf(buf, format, __VA_ARGS__) data/radcli-1.2.11/include/includes.h:51:10: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define vsnprintf(buf, len, format, ap) vsprintf(buf, format, ap) data/radcli-1.2.11/include/includes.h:51:42: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. # define vsnprintf(buf, len, format, ap) vsprintf(buf, format, ap) data/radcli-1.2.11/include/radcli/radcli.h:652:16: [4] (format) syslog: If syslog's format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant format string for syslog. #define rc_log syslog data/radcli-1.2.11/lib/avpair.c:332:4: [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(buffer, hex); data/radcli-1.2.11/lib/avpair.c:666: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 (pair->name, attr->name); data/radcli-1.2.11/lib/avpair.c:674:5: [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 (pair->strvalue, valstr); data/radcli-1.2.11/lib/avpair.c:961:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buf + len, "%-32s = '%s'\n", name, value); data/radcli-1.2.11/lib/dict.c:176: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 (attr->name, namestr); data/radcli-1.2.11/lib/dict.c:236: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 (dval->attrname, attrstr); data/radcli-1.2.11/lib/dict.c:237: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 (dval->name, namestr); data/radcli-1.2.11/lib/dict.c:332: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 (dvend->vendorname, attrstr); data/radcli-1.2.11/lib/sendserver.c:106:5: [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((char *)md5buf, secret); data/radcli-1.2.11/lib/sendserver.c:488:3: [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(secret, MGMT_POLL_SECRET); data/radcli-1.2.11/lib/util.h:62:2: [4] (format) syslog: If syslog's format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant format string for syslog. syslog(prio, "radcli: %s: "fmt, __func__, ##__VA_ARGS__) data/radcli-1.2.11/lib/util.h:64:18: [4] (format) syslog: If syslog's format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant format string for syslog. # define rc_log syslog data/radcli-1.2.11/src/radacct.c:136:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stdout, SC_ACCT_OK); data/radcli-1.2.11/src/radacct.c:142:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stdout, SC_ACCT_FAILED, result); data/radcli-1.2.11/src/radius.c:158:6: [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(name,buf); data/radcli-1.2.11/src/radius.c:190:4: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_SERVER_REPLY, msg); data/radcli-1.2.11/src/radius.c:192:4: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_RADIUS_OK); data/radcli-1.2.11/src/radius.c:204:4: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_SERVER_REPLY, msg); data/radcli-1.2.11/src/radius.c:206:4: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_RADIUS_FAILED); data/radcli-1.2.11/src/radius.c:221:2: [4] (shell) execle: 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. execle(login_radius, login_radius, NULL, env->env); data/radcli-1.2.11/src/radstatus.c:103:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_STATUS_FAILED); data/radcli-1.2.11/src/radstatus.c:113:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_STATUS_FAILED); data/radcli-1.2.11/src/radstatus.c:123:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(SC_STATUS_FAILED); data/radcli-1.2.11/include/includes.h:153:10: [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. # define srandom srand data/radcli-1.2.11/include/includes.h:153:25: [3] (random) srand: 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. # define srandom srand data/radcli-1.2.11/include/includes.h:154:10: [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. # define random rand data/radcli-1.2.11/lib/buildreq.c:27:25: [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. return (unsigned char)(random() & UCHAR_MAX); data/radcli-1.2.11/lib/config.c:1120:3: [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((unsigned int)(time(NULL)+getpid())); data/radcli-1.2.11/lib/sendserver.c:389:12: [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. randno = random(); data/radcli-1.2.11/src/radacct.c:83:14: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c = getopt(argc,argv,"f:hV")) > 0) data/radcli-1.2.11/src/radiusclient.c:70:18: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((ch = getopt(argc, argv, "Daf:p:sie:")) != -1) { data/radcli-1.2.11/src/radstatus.c:59:14: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c = getopt(argc,argv,"hVf:")) > 0) data/radcli-1.2.11/tests/tls-restart.c:57:15: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((ch = getopt(argc, argv, "af:p:s")) != -1) { data/radcli-1.2.11/include/includes.h:212: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 secret[MAX_SECRET_LENGTH + 1]; //!< The secret used for this request data/radcli-1.2.11/include/radcli/radcli.h:85: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 *name[SERVER_MAX]; data/radcli-1.2.11/include/radcli/radcli.h:87: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 *secret[SERVER_MAX]; data/radcli-1.2.11/include/radcli/radcli.h:427: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 name[NAME_LENGTH + 1]; //!< attribute name. data/radcli-1.2.11/include/radcli/radcli.h:435: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 attrname[NAME_LENGTH +1]; data/radcli-1.2.11/include/radcli/radcli.h:436: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 name[NAME_LENGTH + 1]; data/radcli-1.2.11/include/radcli/radcli.h:443: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 vendorname[NAME_LENGTH +1]; data/radcli-1.2.11/include/radcli/radcli.h:470: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 name[NAME_LENGTH + 1]; //!< attribute name if known. data/radcli-1.2.11/include/radcli/radcli.h:474: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 strvalue[AUTH_STRING_LEN + 1]; //!< contains attribute value in other cases. data/radcli-1.2.11/include/radcli/radcli.h:476: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 pad[32]; //!< unused pad data/radcli-1.2.11/lib/avpair.c:147: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(vp->strvalue, (char const *)pval, len); data/radcli-1.2.11/lib/avpair.c:162: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(vp->strvalue, (char const *)pval, len); data/radcli-1.2.11/lib/avpair.c:171: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(vp->strvalue, (char const *)pval, len); data/radcli-1.2.11/lib/avpair.c:278: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 buffer[(AUTH_STRING_LEN * 2) + 1]; data/radcli-1.2.11/lib/avpair.c:280: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 hex[3]; data/radcli-1.2.11/lib/avpair.c:312: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(&lvalue, ptr, 4); data/radcli-1.2.11/lib/avpair.c:362: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(pair->strvalue, (char *)ptr, (size_t)attrlen); data/radcli-1.2.11/lib/avpair.c:379: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((char *)&lvalue, (char *)ptr, 4); data/radcli-1.2.11/lib/avpair.c:388: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(pair->strvalue, (char *)ptr, 16); data/radcli-1.2.11/lib/avpair.c:397: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(pair->strvalue, (char *)ptr, attrlen); data/radcli-1.2.11/lib/avpair.c:602: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 attrstr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/avpair.c:603: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 valstr[AUTH_STRING_LEN + 1], *p; data/radcli-1.2.11/lib/avpair.c:681:21: [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). pair->lvalue = atoi (valstr); data/radcli-1.2.11/lib/avpair.c:732:26: [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). pair->strvalue[1] = atoi(p); data/radcli-1.2.11/lib/avpair.c:916:4: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip, pair->strvalue+2, pair->lvalue-2); data/radcli-1.2.11/lib/avpair.c:952: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 name[33], value[256]; data/radcli-1.2.11/lib/avpair.c:1002: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(res, vp->strvalue, 16); data/radcli-1.2.11/lib/avpair.c:1010: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(res, vp->strvalue+2, vp->lvalue-2); data/radcli-1.2.11/lib/config.c:96:10: [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). *iptr = atoi(p); data/radcli-1.2.11/lib/config.c:195:49: [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). serv->port[serv->max] = atoi(q); data/radcli-1.2.11/lib/config.c:374:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rh->config_options, &config_options_default, sizeof(config_options_default)); data/radcli-1.2.11/lib/config.c:582: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 buffer[512], *p; data/radcli-1.2.11/lib/config.c:599:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rh->config_options, &config_options_default, sizeof(config_options_default)); data/radcli-1.2.11/lib/config.c:601:18: [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 ((configfd = fopen(filename,"r")) == NULL) data/radcli-1.2.11/lib/config.c:871: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(&tmpaddr, addr, SA_LEN(addr)); data/radcli-1.2.11/lib/config.c:930: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 buffer[128]; data/radcli-1.2.11/lib/config.c:931: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 hostnm[AUTH_ID_LEN + 1]; data/radcli-1.2.11/lib/config.c:974:19: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((clientfd = fopen (fservers, "r")) == NULL) data/radcli-1.2.11/lib/dict.c:39: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 dummystr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.c:40: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 namestr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.c:41: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 valstr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.c:42: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 attrstr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.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 typestr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.c:44: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 optstr[AUTH_ID_LEN]; data/radcli-1.2.11/lib/dict.c:45: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 ifilename[PATH_MAX] = {0}; data/radcli-1.2.11/lib/dict.c:51: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 buffer[256]; data/radcli-1.2.11/lib/dict.c:111: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). value = atoi (valstr); data/radcli-1.2.11/lib/dict.c:228: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). value = atoi (valstr); data/radcli-1.2.11/lib/dict.c:323: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). value = atoi (valstr); data/radcli-1.2.11/lib/dict.c:360:16: [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 ((dictfd = fopen (filename, "r")) == NULL) data/radcli-1.2.11/lib/hmac.c:55:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pad->inner, key, key_len); data/radcli-1.2.11/lib/hmac.c:56:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pad->outer, key, key_len); data/radcli-1.2.11/lib/ip_util.c:167: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(lia, &rh->own_bind_addr, SS_LEN(&rh->own_bind_addr)); data/radcli-1.2.11/lib/ip_util.c:184: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(lia, info->ai_addr, info->ai_addrlen); data/radcli-1.2.11/lib/md5.c:94: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(ctx->buffer + have, input, need); data/radcli-1.2.11/lib/md5.c:111: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(ctx->buffer + have, input, len); data/radcli-1.2.11/lib/md5.c:119: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. MD5Final(unsigned char digest[MD5_DIGEST_LENGTH], MD5_CTX *ctx) data/radcli-1.2.11/lib/options.h:24: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 name[OPTION_LEN]; //!< name of the option. data/radcli-1.2.11/lib/sendserver.c:59:11: [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. unsigned char passbuf[MAX(AUTH_PASS_LEN, CHAP_VALUE_LENGTH)]; data/radcli-1.2.11/lib/sendserver.c:60:11: [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. unsigned char md5buf[256]; data/radcli-1.2.11/lib/sendserver.c:72:4: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, &vendor, sizeof(uint32_t)); data/radcli-1.2.11/lib/sendserver.c:100: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((char *)passbuf, vp->strvalue, (size_t) length); data/radcli-1.2.11/lib/sendserver.c:107:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *)md5buf + secretlen, vector, data/radcli-1.2.11/lib/sendserver.c:131:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, vp->strvalue, (size_t) length); data/radcli-1.2.11/lib/sendserver.c:141:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, vp->strvalue, (size_t) length); data/radcli-1.2.11/lib/sendserver.c:151:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, vp->strvalue, (size_t) length); data/radcli-1.2.11/lib/sendserver.c:163:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, (char *)&lvalue, sizeof(uint32_t)); data/radcli-1.2.11/lib/sendserver.c:197: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(&dest[*pos], src, len); data/radcli-1.2.11/lib/sendserver.c:203:44: [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 int populate_ctx(RC_AAA_CTX ** ctx, char secret[MAX_SECRET_LENGTH + 1], data/radcli-1.2.11/lib/sendserver.c:212: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((*ctx)->secret, secret, sizeof((*ctx)->secret)); data/radcli-1.2.11/lib/sendserver.c:213: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((*ctx)->request_vector, vector, data/radcli-1.2.11/lib/sendserver.c:251:11: [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. unsigned char calc_digest[AUTH_VECTOR_LEN]; data/radcli-1.2.11/lib/sendserver.c:252:11: [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. unsigned char reply_digest[AUTH_VECTOR_LEN]; data/radcli-1.2.11/lib/sendserver.c:281: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((char *)reply_digest, (char *)auth->vector, AUTH_VECTOR_LEN); data/radcli-1.2.11/lib/sendserver.c:282: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((char *)auth->vector, (char *)vector, AUTH_VECTOR_LEN); data/radcli-1.2.11/lib/sendserver.c:283: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((char *)auth + totallen, secret, secretlen); data/radcli-1.2.11/lib/sendserver.c:288: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 buf[65]; data/radcli-1.2.11/lib/sendserver.c:295:4: [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(buf + i * 2, "%.2X", ptr[i]); data/radcli-1.2.11/lib/sendserver.c:305: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 buf[65]; data/radcli-1.2.11/lib/sendserver.c:312:4: [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(buf + i * 2, "%.2X", ptr[i]); data/radcli-1.2.11/lib/sendserver.c:319: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 buf[65]; data/radcli-1.2.11/lib/sendserver.c:326:4: [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(buf + i * 2, "%.2X", ptr[i]); data/radcli-1.2.11/lib/sendserver.c:366:12: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fd = open(_PATH_DEV_URANDOM, O_RDONLY)) >= 0) { data/radcli-1.2.11/lib/sendserver.c:390: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((char *)vector, (char *)&randno, sizeof(int)); data/radcli-1.2.11/lib/sendserver.c:427: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(&msg_auth[2], digest, MD5_DIGEST_SIZE); data/radcli-1.2.11/lib/sendserver.c:460: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 secret[MAX_SECRET_LENGTH + 1]; data/radcli-1.2.11/lib/sendserver.c:461:11: [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. unsigned char vector[AUTH_VECTOR_LEN]; data/radcli-1.2.11/lib/sendserver.c:659: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(&auth->length, &tlen, sizeof(uint16_t)); data/radcli-1.2.11/lib/sendserver.c:663: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((char *)auth + total_length, secret, secretlen); data/radcli-1.2.11/lib/sendserver.c:666: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((char *)auth->vector, (char *)vector, AUTH_VECTOR_LEN); data/radcli-1.2.11/lib/sendserver.c:669: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((char *)auth->vector, (char *)vector, AUTH_VECTOR_LEN); data/radcli-1.2.11/lib/sendserver.c:682: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 our_addr_txt[50] = ""; /* hold a text IP */ data/radcli-1.2.11/lib/sendserver.c:683: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 auth_addr_txt[50] = ""; /* hold a text IP */ data/radcli-1.2.11/lib/sendserver.c:788: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 radius_server_ip[128]; data/radcli-1.2.11/lib/tls.c:56: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 hostname[256]; /* server's hostname */ data/radcli-1.2.11/lib/tls.c:274: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(&ses->our_sockaddr, our_sockaddr, sizeof(*our_sockaddr)); data/radcli-1.2.11/lib/tls.c:421: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(&st->ctx, &tmps, sizeof(tmps)); data/radcli-1.2.11/lib/tls.c:543: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 hostname[256]; /* server's hostname */ data/radcli-1.2.11/lib/tls.c:644: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 username[64]; data/radcli-1.2.11/lib/util.c:58:16: [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). tm->tm_mday = atoi (&valstr[4]); data/radcli-1.2.11/lib/util.c:61:16: [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). tm->tm_year = atoi (&valstr[7]) - 1900; data/radcli-1.2.11/lib/util.c:96:10: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char buf[15]; data/radcli-1.2.11/lib/util.c:172: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 sock_nsnet[NSNET_SZ]; data/radcli-1.2.11/lib/util.c:185:27: [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). *prev_ns_handle = open(crt_nsnet, O_RDONLY); data/radcli-1.2.11/lib/util.c:190:22: [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). sock_ns_fd = open(sock_nsnet, O_RDONLY); data/radcli-1.2.11/src/common.c:43: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. static char buf[GETSTR_LENGTH]; data/radcli-1.2.11/src/radacct.c:43: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 buffer[1024], *q; data/radcli-1.2.11/src/radembedded.c:24: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 username[255] = "bob@somedomain.here"; data/radcli-1.2.11/src/radembedded.c:25: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 callfrom[255] = "8475551212"; data/radcli-1.2.11/src/radembedded.c:26: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 callto[255] = "8479630116"; data/radcli-1.2.11/src/radembedded.c:27: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 myuuid[255] = "981743-asdf-90834klj234"; data/radcli-1.2.11/src/radembedded_dict.c:20: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 username[255] = "bob@somedomain.here"; data/radcli-1.2.11/src/radembedded_dict.c:21: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 callfrom[255] = "8475551212"; data/radcli-1.2.11/src/radembedded_dict.c:22: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 callto[255] = "8479630116"; data/radcli-1.2.11/src/radembedded_dict.c:23: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 myuuid[255] = "981743-asdf-90834klj234"; data/radcli-1.2.11/src/radexample.c:18: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 username[128]; data/radcli-1.2.11/src/radexample.c:19: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 passwd[AUTH_PASS_LEN + 1]; data/radcli-1.2.11/src/radexample.c:30: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(username, "my-username"); data/radcli-1.2.11/src/radexample.c:31: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(passwd, "my-password"); data/radcli-1.2.11/src/radexample.c:58: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 name[128]; data/radcli-1.2.11/src/radexample.c:59: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 value[128]; data/radcli-1.2.11/src/radius.c:23: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 msg[PW_MAX_MSG_SIZE], *p, username_realm[256]; data/radcli-1.2.11/src/radius.c:24: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 name[2048], value[2048]; /* more than enough */ data/radcli-1.2.11/src/radius.c:137:4: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(name, "RADIUS_"); data/radcli-1.2.11/src/radius.c:156: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 buf[10]; data/radcli-1.2.11/src/radiusclient.c:59: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 lbuf[4096]; data/radcli-1.2.11/src/radiusclient.c:80:24: [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). nas_port = atoi(optarg); data/radcli-1.2.11/src/radiusclient.c:184:21: [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(lbuf, cp, len); data/radcli-1.2.11/src/radiusclient.c:210:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[BUF_LEN]; data/radcli-1.2.11/src/radstatus.c:48: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 *p, msg[PW_MAX_MSG_SIZE]; data/radcli-1.2.11/src/radstatus.c:98:49: [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). result = rc_check(rh, argv[i],FIX_ME_SECRET,atoi(p+1), msg); data/radcli-1.2.11/tests/tls-restart.c:50: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 lbuf[4096]; data/radcli-1.2.11/tests/tls-restart.c:64:15: [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). nas_port = atoi(optarg); data/radcli-1.2.11/tests/tls-restart.c:128:6: [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(lbuf, cp, len); data/radcli-1.2.11/tests/tls-restart.c:156: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 msg[PW_MAX_MSG_SIZE]; data/radcli-1.2.11/tests/tls-restart.c:157: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[BUF_LEN]; data/radcli-1.2.11/lib/avpair.c:142: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). len = (uint32_t)strlen((char const *)pval); data/radcli-1.2.11/lib/avpair.c:675:30: [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). pair->lvalue = (uint32_t)strlen(valstr); data/radcli-1.2.11/lib/avpair.c:959: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). nlen = len + 32 + 3 + strlen(value) + 2 + 2; data/radcli-1.2.11/lib/config.c:194: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). if(q && strlen(q) > 0) { data/radcli-1.2.11/lib/config.c:617: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). p[strlen(p)-1] = '\0'; data/radcli-1.2.11/lib/config.c:646: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). pos = strlen(p) - 1; data/radcli-1.2.11/lib/config.c:955: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). size_t server_name_len = strlen(server_name); data/radcli-1.2.11/lib/dict.c:84:8: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (sscanf (buffer, "%63s%63s%63s%63s%63s", dummystr, namestr, data/radcli-1.2.11/lib/dict.c:96: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). if (strlen (namestr) > NAME_LENGTH) data/radcli-1.2.11/lib/dict.c:193:8: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (sscanf (buffer, "%63s%63s%63s%63s", dummystr, attrstr, data/radcli-1.2.11/lib/dict.c:205: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). if (strlen (attrstr) > NAME_LENGTH) data/radcli-1.2.11/lib/dict.c:213: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). if (strlen (namestr) > NAME_LENGTH) data/radcli-1.2.11/lib/dict.c:248:8: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (sscanf (buffer, "%63s%63s", dummystr, namestr) != 2) data/radcli-1.2.11/lib/dict.c:255:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ifilename, namestr, sizeof(ifilename)); data/radcli-1.2.11/lib/dict.c:278:8: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (sscanf (buffer+12, "%63s", dummystr) != 1) data/radcli-1.2.11/lib/dict.c:299:8: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (sscanf (buffer, "%63s%63s%63s", dummystr, attrstr, valstr) != 3) data/radcli-1.2.11/lib/dict.c:308: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). if (strlen (attrstr) > NAME_LENGTH) data/radcli-1.2.11/lib/sendserver.c:102:16: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). secretlen = strlen(secret); data/radcli-1.2.11/lib/sendserver.c:187: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). unsigned len = strlen(src) + 1; data/radcli-1.2.11/lib/sendserver.c:258: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). secretlen = (int)strlen(secret); data/radcli-1.2.11/lib/sendserver.c:373:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). readcount = read(fd, (char *)pos, i); data/radcli-1.2.11/lib/sendserver.c:416:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t secretlen = strlen(secret); data/radcli-1.2.11/lib/sendserver.c:662:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). secretlen = strlen(secret); data/radcli-1.2.11/lib/tls.c:323: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). hostname, strlen(hostname)); data/radcli-1.2.11/lib/tls.c:677: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). hexkey.size = strlen(p); data/radcli-1.2.11/src/common.c:78:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (read(in, &c, 1) > 0) data/radcli-1.2.11/src/common.c:87: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). if (write(out, prompt, strlen(prompt)) == -1) { data/radcli-1.2.11/src/common.c:97:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (read(in, &c, 1) <= 0) data/radcli-1.2.11/src/common.c:140:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (read(in, &c, 1) > 0) data/radcli-1.2.11/src/radius.c:96:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(username_realm, username, sizeof(username_realm)); data/radcli-1.2.11/src/radius.c:104:3: [1] (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 low because the source is a constant character. strncat(username_realm, "@", sizeof(username_realm)-strlen(username_realm)-1); data/radcli-1.2.11/src/radius.c:104:55: [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). strncat(username_realm, "@", sizeof(username_realm)-strlen(username_realm)-1); data/radcli-1.2.11/src/radius.c:105:3: [1] (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. strncat(username_realm, default_realm, sizeof(username_realm)-strlen(username_realm)-1); data/radcli-1.2.11/src/radius.c:105:65: [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). strncat(username_realm, default_realm, sizeof(username_realm)-strlen(username_realm)-1); ANALYSIS SUMMARY: Hits = 208 Lines analyzed = 8939 in approximately 0.28 seconds (31650 lines/second) Physical Source Lines of Code (SLOC) = 6090 Hits@level = [0] 115 [1] 34 [2] 136 [3] 10 [4] 28 [5] 0 Hits@level+ = [0+] 323 [1+] 208 [2+] 174 [3+] 38 [4+] 28 [5+] 0 Hits/KSLOC@level+ = [0+] 53.0378 [1+] 34.1544 [2+] 28.5714 [3+] 6.23974 [4+] 4.5977 [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.