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/r-cran-eaf-1.9-1/src/Rhv.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/hv.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/hv.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/pareto.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/gcc_attribs.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/cmdline.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/ndsort.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/io.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/igd.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/hv_contrib.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/io_priv.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/epsilon.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/epsilon.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/igd.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c Examining data/r-cran-eaf-1.9-1/src/mo-tools/hv_contrib.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/common.h Examining data/r-cran-eaf-1.9-1/src/mo-tools/io.h Examining data/r-cran-eaf-1.9-1/src/init.c Examining data/r-cran-eaf-1.9-1/src/eaf/avl.h Examining data/r-cran-eaf-1.9-1/src/eaf/gcc_attribs.h Examining data/r-cran-eaf-1.9-1/src/eaf/cvector.h Examining data/r-cran-eaf-1.9-1/src/eaf/io.c Examining data/r-cran-eaf-1.9-1/src/eaf/io_priv.h Examining data/r-cran-eaf-1.9-1/src/eaf/eaf.h Examining data/r-cran-eaf-1.9-1/src/eaf/common.h Examining data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c Examining data/r-cran-eaf-1.9-1/src/eaf/eaf.c Examining data/r-cran-eaf-1.9-1/src/eaf/io.h Examining data/r-cran-eaf-1.9-1/src/eaf/avl.c Examining data/r-cran-eaf-1.9-1/src/eaf/eaf_main.c Examining data/r-cran-eaf-1.9-1/src/Rnondominated.c Examining data/r-cran-eaf-1.9-1/src/Rcommon.h Examining data/r-cran-eaf-1.9-1/src/Repsilon.c Examining data/r-cran-eaf-1.9-1/src/Reaf.c FINAL RESULTS: data/r-cran-eaf-1.9-1/src/eaf/common.h:21:22: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define Rprintf(...) printf(__VA_ARGS__) data/r-cran-eaf-1.9-1/src/eaf/common.h:22:66: [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. void fatal_error(const char * format,...) __attribute__ ((format(printf, 1, 2))) __noreturn __unused; data/r-cran-eaf-1.9-1/src/eaf/common.h:23:64: [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. void errprintf(const char * format,...) __attribute__ ((format(printf, 1, 2))); data/r-cran-eaf-1.9-1/src/eaf/common.h:24:65: [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. void warnprintf(const char *format,...) __attribute__ ((format(printf, 1, 2))); data/r-cran-eaf-1.9-1/src/eaf/common.h:76:35: [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. #define DEBUG2_PRINT(...) DEBUG2 (fprintf (stderr, __VA_ARGS__)) data/r-cran-eaf-1.9-1/src/eaf/eaf.c:130:9: [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 (coord_file, point_printf_format "\t" point_printf_format, data/r-cran-eaf-1.9-1/src/eaf/eaf.c:133:13: [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 (coord_file, "\t" point_printf_format, (double)x[k]); data/r-cran-eaf-1.9-1/src/eaf/eaf.c:135:9: [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 (coord_file, data/r-cran-eaf-1.9-1/src/eaf/eaf.c:150:9: [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 (indic_file, (indic_file == diff_file) ? "\t" : "\n"); data/r-cran-eaf-1.9-1/src/eaf/eaf.c:328:26: [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. #define PRINT_POINT(X,Y) fprintf(stderr, point_printf_format "\t" point_printf_format "\n", X, Y) data/r-cran-eaf-1.9-1/src/eaf/eaf.c:688:9: [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(stream, point_printf_format "\t" point_printf_format "\n", data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:221:13: [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(outfile, point_printf_format "\t", val[i]); data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:266:13: [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(outfile, point_printf_format, val[0]); data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:268:17: [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(outfile, "\t" point_printf_format, val[i]); data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:271:13: [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(outfile, (outfile == outfileindic) ? "\t" : "\n"); data/r-cran-eaf-1.9-1/src/eaf/io.c:100:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/eaf/io.c:118:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/eaf/io.c:130:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/eaf/io.c:139:5: [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 (stream, point_printf_format, vector[0]); data/r-cran-eaf-1.9-1/src/eaf/io.c:141:9: [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 (stream, point_printf_sep "" point_printf_format, vector[k]); data/r-cran-eaf-1.9-1/src/eaf/io_priv.h:86:21: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. if (fscanf (instream, objective_t_scanf_format, &number) != 1) { data/r-cran-eaf-1.9-1/src/mo-tools/cmdline.h:89: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 (dest, a); data/r-cran-eaf-1.9-1/src/mo-tools/cmdline.h:90:5: [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 (dest, b); data/r-cran-eaf-1.9-1/src/mo-tools/common.h:21:22: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define Rprintf(...) printf(__VA_ARGS__) data/r-cran-eaf-1.9-1/src/mo-tools/common.h:22:66: [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. void fatal_error(const char * format,...) __attribute__ ((format(printf, 1, 2))) __noreturn __unused; data/r-cran-eaf-1.9-1/src/mo-tools/common.h:23:64: [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. void errprintf(const char * format,...) __attribute__ ((format(printf, 1, 2))); data/r-cran-eaf-1.9-1/src/mo-tools/common.h:24:65: [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. void warnprintf(const char *format,...) __attribute__ ((format(printf, 1, 2))); data/r-cran-eaf-1.9-1/src/mo-tools/common.h:76:35: [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. #define DEBUG2_PRINT(...) DEBUG2 (fprintf (stderr, __VA_ARGS__)) data/r-cran-eaf-1.9-1/src/mo-tools/epsilon.c:261:9: [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 (stderr, (additive_flag) data/r-cran-eaf-1.9-1/src/mo-tools/hv.c:60:70: [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. static void fatal_error(const char * str,...) __attribute__ ((format(printf, 1, 2))) __noreturn; data/r-cran-eaf-1.9-1/src/mo-tools/hv.c:66:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, template, ap); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:100:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:118:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:130:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr, format, ap); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:139:5: [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 (stream, point_printf_format, vector[0]); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:141:9: [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 (stream, point_printf_sep "" point_printf_format, vector[k]); data/r-cran-eaf-1.9-1/src/mo-tools/io_priv.h:86:21: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. if (fscanf (instream, objective_t_scanf_format, &number) != 1) { data/r-cran-eaf-1.9-1/src/eaf/eaf_main.c:248:26: [3] (buffer) getopt_long: 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 (0 < (option = getopt_long(argc, argv, short_options, data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:339:23: [3] (buffer) getopt_long: 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 (0 < (opt = getopt_long(argc, argv, "hVvqpo:", data/r-cran-eaf-1.9-1/src/mo-tools/epsilon.c:203:23: [3] (buffer) getopt_long: 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 (0 < (opt = getopt_long(argc, argv, "hVvqamr:us:o:", data/r-cran-eaf-1.9-1/src/mo-tools/igd.c:289:23: [3] (buffer) getopt_long: 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 (0 < (opt = getopt_long(argc, argv, "hVvqamr:us:o:", data/r-cran-eaf-1.9-1/src/mo-tools/ndsort.c:154:23: [3] (buffer) getopt_long: 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 (0 < (opt = getopt_long(argc, argv, "hVvqkro:", data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c:644:23: [3] (buffer) getopt_long: 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 (0 < (opt = getopt_long (argc, argv, "hVvqfo:a:n:u:l:Us:b", data/r-cran-eaf-1.9-1/src/eaf/eaf.c:293:17: [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 (save_attained, attained, nruns * sizeof(*attained)); data/r-cran-eaf-1.9-1/src/eaf/eaf_main.c:353:22: [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). coord_file = fopen (coord_filename, "w"); data/r-cran-eaf-1.9-1/src/eaf/eaf_main.c:369:22: [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). indic_file = fopen (indic_filename, "w"); data/r-cran-eaf-1.9-1/src/eaf/eaf_main.c:387:21: [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). diff_file = fopen (diff_filename, "w"); data/r-cran-eaf-1.9-1/src/eaf/io.c:62: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 newline[2]; data/r-cran-eaf-1.9-1/src/eaf/io.c:69: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 newline[2]; data/r-cran-eaf-1.9-1/src/eaf/io_priv.h:30:36: [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). } else if (NULL == (instream = fopen (filename,"rb"))) { data/r-cran-eaf-1.9-1/src/eaf/io_priv.h:87:21: [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[64]; data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:105: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[32]; data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:414: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 buffer[32]; data/r-cran-eaf-1.9-1/src/mo-tools/epsilon.c:117: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). outfile = fopen (outfilename, "w"); data/r-cran-eaf-1.9-1/src/mo-tools/hv_contrib.c:27: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 (tmp, points + i * dim, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/hv_contrib.c:28: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 (points + i * dim, ref, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/hv_contrib.c:32: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 (points + i * dim, tmp, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/igd.c:140: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). outfile = fopen (outfilename, "w"); data/r-cran-eaf-1.9-1/src/mo-tools/igd.c:294:28: [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). exponent_p = atoi(optarg); data/r-cran-eaf-1.9-1/src/mo-tools/igd.c:298:22: [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). norm = atoi(optarg); data/r-cran-eaf-1.9-1/src/mo-tools/io.c:62: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 newline[2]; data/r-cran-eaf-1.9-1/src/mo-tools/io.c:69: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 newline[2]; data/r-cran-eaf-1.9-1/src/mo-tools/io_priv.h:30:36: [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). } else if (NULL == (instream = fopen (filename,"rb"))) { data/r-cran-eaf-1.9-1/src/mo-tools/io_priv.h:87:21: [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[64]; data/r-cran-eaf-1.9-1/src/mo-tools/ndsort.c:266:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (data + data_size * dim, src, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c:301:17: [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 (&points[n * dim], &points[n2 * dim], data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c:526: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 (log_lbound, lbound, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c:527: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 (log_ubound, ubound, sizeof(double) * dim); data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.c:568:23: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). outfile = fopen (outfilename, "w"); data/r-cran-eaf-1.9-1/src/mo-tools/nondominated.h:171: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(&pareto_set[dim * k], &points[dim * n], sizeof(points[0]) * dim); data/r-cran-eaf-1.9-1/src/eaf/avl.h:81:24: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. struct avl_node_t *equal; data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:197:21: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. node = avlnode->equal; data/r-cran-eaf-1.9-1/src/eaf/eaf3d.c:201:22: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. node = node->equal; data/r-cran-eaf-1.9-1/src/eaf/io.h:59:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int len = strlen (str); data/r-cran-eaf-1.9-1/src/eaf/io.h:106:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int len = strlen (str); data/r-cran-eaf-1.9-1/src/mo-tools/cmdline.h:86:20: [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 dest_len = strlen(a) + strlen(b) + 1; data/r-cran-eaf-1.9-1/src/mo-tools/cmdline.h:86: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). int dest_len = strlen(a) + strlen(b) + 1; data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:109:57: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). max_filename_len = MAX (max_filename_len, (int) strlen (filenames[k])); data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:117:48: [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). max_col_len = MAX (max_filename_len, (int) strlen(buffer)); data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:141: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). max_col_len = MAX (max_col_len, (int) strlen("100.0")); data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:418:37: [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 = malloc (sizeof(char) * (strlen(buffer) + 1)); data/r-cran-eaf-1.9-1/src/mo-tools/dominatedsets.c:419:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (p, buffer, 32); data/r-cran-eaf-1.9-1/src/mo-tools/io.h:59:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int len = strlen (str); data/r-cran-eaf-1.9-1/src/mo-tools/io.h:106:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int len = strlen (str); ANALYSIS SUMMARY: Hits = 84 Lines analyzed = 9731 in approximately 0.31 seconds (31313 lines/second) Physical Source Lines of Code (SLOC) = 7098 Hits@level = [0] 224 [1] 14 [2] 27 [3] 6 [4] 37 [5] 0 Hits@level+ = [0+] 308 [1+] 84 [2+] 70 [3+] 43 [4+] 37 [5+] 0 Hits/KSLOC@level+ = [0+] 43.3925 [1+] 11.8343 [2+] 9.86193 [3+] 6.05804 [4+] 5.21274 [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.