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/sprng-2.0a/EXAMPLES/2streams_mpi.c Examining data/sprng-2.0a/EXAMPLES/checkpoint-simple.c Examining data/sprng-2.0a/EXAMPLES/checkpoint.c Examining data/sprng-2.0a/EXAMPLES/convert.c Examining data/sprng-2.0a/EXAMPLES/displaybytes.c Examining data/sprng-2.0a/EXAMPLES/fsprng-simple_mpi.c Examining data/sprng-2.0a/EXAMPLES/fsprng_mpi.c Examining data/sprng-2.0a/EXAMPLES/invalid_ID.c Examining data/sprng-2.0a/EXAMPLES/message-simple_mpi.c Examining data/sprng-2.0a/EXAMPLES/message_mpi.c Examining data/sprng-2.0a/EXAMPLES/myrandom.c Examining data/sprng-2.0a/EXAMPLES/pi-simple.c Examining data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c Examining data/sprng-2.0a/EXAMPLES/seed-simple.c Examining data/sprng-2.0a/EXAMPLES/seed-simple_mpi.c Examining data/sprng-2.0a/EXAMPLES/seed.c Examining data/sprng-2.0a/EXAMPLES/seed_mpi.c Examining data/sprng-2.0a/EXAMPLES/simple-simple.c Examining data/sprng-2.0a/EXAMPLES/spawn.c Examining data/sprng-2.0a/EXAMPLES/sprng-simple.c Examining data/sprng-2.0a/EXAMPLES/sprng-simple_mpi.C Examining data/sprng-2.0a/EXAMPLES/sprng-simple_mpi.c Examining data/sprng-2.0a/EXAMPLES/sprng.C Examining data/sprng-2.0a/EXAMPLES/sprng.c Examining data/sprng-2.0a/EXAMPLES/sprng_mpi.c Examining data/sprng-2.0a/SRC/.template.c Examining data/sprng-2.0a/SRC/timing.c Examining data/sprng-2.0a/SRC/checkid.c Examining data/sprng-2.0a/SRC/cmrg/cmrg.c Examining data/sprng-2.0a/SRC/cmrg/cmrg.h Examining data/sprng-2.0a/SRC/communicate.c Examining data/sprng-2.0a/SRC/cputime.c Examining data/sprng-2.0a/SRC/cputime.h Examining data/sprng-2.0a/SRC/drand.c Examining data/sprng-2.0a/SRC/fwrap.h Examining data/sprng-2.0a/SRC/fwrap_.h Examining data/sprng-2.0a/SRC/fwrap_mpi.c Examining data/sprng-2.0a/SRC/interface.h Examining data/sprng-2.0a/SRC/sprng/sprng.c Examining data/sprng-2.0a/SRC/lcg/lcg.c Examining data/sprng-2.0a/SRC/lcg/lcg.h Examining data/sprng-2.0a/SRC/lfg/lfg.c Examining data/sprng-2.0a/SRC/lfg/lfg.h Examining data/sprng-2.0a/SRC/makeseed.c Examining data/sprng-2.0a/SRC/memory.c Examining data/sprng-2.0a/SRC/memory.h Examining data/sprng-2.0a/SRC/mlfg/int64.h Examining data/sprng-2.0a/SRC/mlfg/mlfg.c Examining data/sprng-2.0a/SRC/mlfg/mlfg.h Examining data/sprng-2.0a/SRC/multiply.h Examining data/sprng-2.0a/SRC/lcg64/lcg64.c Examining data/sprng-2.0a/SRC/lcg64/lcg64.h Examining data/sprng-2.0a/SRC/simple.c Examining data/sprng-2.0a/SRC/simple_.h Examining data/sprng-2.0a/SRC/simple_mpi.c Examining data/sprng-2.0a/SRC/sprng.h Examining data/sprng-2.0a/SRC/sprng_f.h Examining data/sprng-2.0a/SRC/store.c Examining data/sprng-2.0a/SRC/store.h Examining data/sprng-2.0a/SRC/primelist_32.h Examining data/sprng-2.0a/SRC/primes_32.h Examining data/sprng-2.0a/SRC/primelist_64.h Examining data/sprng-2.0a/SRC/primes_64.h Examining data/sprng-2.0a/SRC/primes_64.c Examining data/sprng-2.0a/SRC/pmlcg/basic.h Examining data/sprng-2.0a/SRC/pmlcg/gmp.h Examining data/sprng-2.0a/SRC/pmlcg/info.h Examining data/sprng-2.0a/SRC/pmlcg/pmlcg.h Examining data/sprng-2.0a/SRC/pmlcg/longlong.h Examining data/sprng-2.0a/SRC/pmlcg/pmlcg.c Examining data/sprng-2.0a/SRC/check_gen.c Examining data/sprng-2.0a/SRC/check_gen_ptr.c Examining data/sprng-2.0a/SRC/check_gen_simple.c Examining data/sprng-2.0a/SRC/primes_32.c Examining data/sprng-2.0a/include/interface.h Examining data/sprng-2.0a/include/sprng.h Examining data/sprng-2.0a/include/sprng_f.h Examining data/sprng-2.0a/TESTS/chisquare.c Examining data/sprng-2.0a/TESTS/collisions.c Examining data/sprng-2.0a/TESTS/communicate.c Examining data/sprng-2.0a/TESTS/coupon.c Examining data/sprng-2.0a/TESTS/equidist.c Examining data/sprng-2.0a/TESTS/fft.c Examining data/sprng-2.0a/TESTS/gap.c Examining data/sprng-2.0a/TESTS/init_tests.c Examining data/sprng-2.0a/TESTS/maxt.c Examining data/sprng-2.0a/TESTS/metropolis.c Examining data/sprng-2.0a/TESTS/mytest.c Examining data/sprng-2.0a/TESTS/perm.c Examining data/sprng-2.0a/TESTS/poker.c Examining data/sprng-2.0a/TESTS/random_walk.c Examining data/sprng-2.0a/TESTS/runs.c Examining data/sprng-2.0a/TESTS/serial.c Examining data/sprng-2.0a/TESTS/stirling.c Examining data/sprng-2.0a/TESTS/sum.c Examining data/sprng-2.0a/TESTS/tests.h Examining data/sprng-2.0a/TESTS/util.c Examining data/sprng-2.0a/TESTS/util.h Examining data/sprng-2.0a/TESTS/wolff.c FINAL RESULTS: data/sprng-2.0a/EXAMPLES/checkpoint-simple.c:37:3: [4] (buffer) scanf: 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. scanf("%s", outfile); data/sprng-2.0a/EXAMPLES/checkpoint-simple.c:39:3: [4] (buffer) scanf: 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. scanf("%s", infile); data/sprng-2.0a/EXAMPLES/checkpoint.c:46:3: [4] (buffer) scanf: 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. scanf("%s", outfile); data/sprng-2.0a/EXAMPLES/checkpoint.c:48:3: [4] (buffer) scanf: 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. scanf("%s", infile); data/sprng-2.0a/EXAMPLES/pi-simple.c:80:3: [4] (buffer) scanf: 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. scanf("%s", filename); data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:118:5: [4] (buffer) scanf: 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. scanf("%s", filename); data/sprng-2.0a/SRC/.template.c:340: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(temp_buffer+pos,q->gentype); data/sprng-2.0a/SRC/check_gen.c:18:16: [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 report printf data/sprng-2.0a/SRC/check_gen_ptr.c:19:16: [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 report printf data/sprng-2.0a/SRC/check_gen_simple.c:20:16: [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 report printf data/sprng-2.0a/SRC/cmrg/cmrg.c:535: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((char *)p,q->gentype); data/sprng-2.0a/SRC/lcg/lcg.c:760: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((char *)p,q->gentype); data/sprng-2.0a/SRC/lcg64/lcg64.c:489: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((char *)p,q->gentype); data/sprng-2.0a/SRC/lfg/lfg.c:888: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((char *)p,q->gentype); data/sprng-2.0a/SRC/mlfg/mlfg.c:701: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((char *) p,q->gentype); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:700: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(temp_buffer+pos,q->gentype); data/sprng-2.0a/SRC/sprng/sprng.c:196:3: [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, \ data/sprng-2.0a/SRC/drand.c:16:10: [3] (random) drand48: 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. rn = drand48(); data/sprng-2.0a/EXAMPLES/checkpoint-simple.c:25: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 buffer[MAX_PACKED_LENGTH], outfile[80], infile[80], *bytes; data/sprng-2.0a/EXAMPLES/checkpoint-simple.c:45: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). fp = fopen(infile,"r"); data/sprng-2.0a/EXAMPLES/checkpoint-simple.c:70:8: [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). fp = fopen(outfile,"w"); /* open file to store stream state */ data/sprng-2.0a/EXAMPLES/checkpoint.c:26: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 buffer[MAX_PACKED_LENGTH], outfile[80], infile[80], *bytes; data/sprng-2.0a/EXAMPLES/checkpoint.c:55: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). fp = fopen(infile,"r"); data/sprng-2.0a/EXAMPLES/checkpoint.c:77:8: [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). fp = fopen(outfile,"w"); /* open file to store stream state */ data/sprng-2.0a/EXAMPLES/pi-simple.c:26: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 filename[80]; data/sprng-2.0a/EXAMPLES/pi-simple.c:74: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 buffer[MAX_PACKED_LENGTH]; data/sprng-2.0a/EXAMPLES/pi-simple.c:96: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). fp = fopen(filename,"r"); /* open file */ data/sprng-2.0a/EXAMPLES/pi-simple.c:123:8: [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). fp = fopen(filename,"w"); /* open file to store state */ data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:32: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 filename[80]; data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:106: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 buffer[MAX_PACKED_LENGTH]; data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:141: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). fp = fopen(filename,"r"); /* open file */ data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:187: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 *bytes, packed[MAX_PACKED_LENGTH]; data/sprng-2.0a/EXAMPLES/pi-simple_mpi.c:196: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). fp = fopen(filename,"w"); /* open file to store stream state */ data/sprng-2.0a/SRC/.template.c:338: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(temp_buffer,q,sizeof(struct rngen)); data/sprng-2.0a/SRC/.template.c:345: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(temp_buffer+pos,q->array_sizes,q->narrays*sizeof(int)); data/sprng-2.0a/SRC/.template.c:349:7: [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(temp_buffer+pos,q->arrays[i],q->array_sizes[i]*sizeof(int)); data/sprng-2.0a/SRC/.template.c:377: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(q,packed,sizeof(struct rngen)); data/sprng-2.0a/SRC/.template.c:396: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(q->array_sizes,packed+pos,q->narrays*sizeof(int)); data/sprng-2.0a/SRC/.template.c:404:7: [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(q->arrays[i],packed+pos,q->array_sizes[i]*sizeof(int)); data/sprng-2.0a/SRC/check_gen.c:256: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 s[MAX_PACKED_LENGTH]; data/sprng-2.0a/SRC/check_gen_ptr.c:207: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 s[MAX_PACKED_LENGTH], *s2; data/sprng-2.0a/SRC/check_gen_simple.c:164: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 s[MAX_PACKED_LENGTH]; data/sprng-2.0a/SRC/fwrap_.h:262: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(buffer,temp,size); data/sprng-2.0a/SRC/fwrap_.h:286: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(buffer,temp,size); data/sprng-2.0a/SRC/fwrap_.h:308: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(buffer,temp,size); data/sprng-2.0a/SRC/lcg/lcg.c:649:45: [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 (strxncmp((char *) gen->multiplier, (char *) (mults[i]), 4*sizeof(int)) data/sprng-2.0a/SRC/pmlcg/pmlcg.c:703: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(temp_buffer+pos,q,sizeof(struct rngen)); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:706: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(temp_buffer+pos,q->k._mp_d,q->k._mp_alloc*sizeof(mp_limb_t)); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:708: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(temp_buffer+pos,q->si._mp_d,q->si._mp_alloc*sizeof(mp_limb_t)); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:745: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(q,packed+pos,sizeof(struct rngen)); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:753: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(q->k._mp_d,packed+pos,q->k._mp_alloc*sizeof(mp_limb_t)); data/sprng-2.0a/SRC/pmlcg/pmlcg.c:755: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(q->si._mp_d,packed+pos,q->si._mp_alloc*sizeof(mp_limb_t)); data/sprng-2.0a/SRC/primes_32.c:74: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(prime_array,prime_list_32+offset,need*sizeof(int)); data/sprng-2.0a/SRC/primes_64.c:75: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(prime_array,prime_list_64+offset,need*sizeof(unsigned int)); data/sprng-2.0a/SRC/store.c:154: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. unsigned char c[80], *temp; data/sprng-2.0a/TESTS/collisions.c:45:7: [2] (integer) atol: 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). n = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/collisions.c:46:11: [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). logmd = atoi(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/collisions.c:47: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). logd = atoi(argv[N_STREAM_PARAM+3]); data/sprng-2.0a/TESTS/communicate.c:63: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(array,temp,n*sizeof(double)); data/sprng-2.0a/TESTS/communicate.c:82: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(array,temp,n*sizeof(long)); data/sprng-2.0a/TESTS/coupon.c:43:7: [2] (integer) atol: 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). n = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/coupon.c:44:7: [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). t = atoi(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/coupon.c:45:7: [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). d = atoi(argv[N_STREAM_PARAM+3]); data/sprng-2.0a/TESTS/equidist.c:41:13: [2] (integer) atol: 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). numDiv = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/equidist.c:42:16: [2] (integer) atol: 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). numRanNum = atol(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/fft.c:69:19: [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). if(argc != 8 || atoi(argv[2]) != 1 || atoi(argv[6]) != 0) data/sprng-2.0a/TESTS/fft.c:69: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). if(argc != 8 || atoi(argv[2]) != 1 || atoi(argv[6]) != 0) data/sprng-2.0a/TESTS/fft.c:75:11: [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). else if(atoi(argv[1]) < 1 || atoi(argv[5]) < 1 || atoi(argv[7]) < 1 ) data/sprng-2.0a/TESTS/fft.c:75:32: [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). else if(atoi(argv[1]) < 1 || atoi(argv[5]) < 1 || atoi(argv[7]) < 1 ) data/sprng-2.0a/TESTS/fft.c:75:53: [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). else if(atoi(argv[1]) < 1 || atoi(argv[5]) < 1 || atoi(argv[7]) < 1 ) data/sprng-2.0a/TESTS/fft.c:81:14: [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). nstreams = atoi(argv[1]); /* number of streams */ data/sprng-2.0a/TESTS/fft.c:82:11: [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). param = atoi(argv[4]); /* parameter to the generator */ data/sprng-2.0a/TESTS/fft.c:83:11: [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). nruns = atoi(argv[5]); /* number of runs to repeat */ data/sprng-2.0a/TESTS/fft.c:84:7: [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). n = atoi(argv[7]); /* number of random numbers per stream */ data/sprng-2.0a/TESTS/gap.c:37: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). maxGapLen = atoi(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/gap.c:40:16: [2] (integer) atol: 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). numTotGap = atol(argv[N_STREAM_PARAM+4]); data/sprng-2.0a/TESTS/init_tests.c:82:7: [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). if (atoi(argv[1])>5||atoi(argv[1])<0) data/sprng-2.0a/TESTS/init_tests.c:82: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). if (atoi(argv[1])>5||atoi(argv[1])<0) data/sprng-2.0a/TESTS/init_tests.c:88:6: [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). if(atoi(argv[3]) <= 0) data/sprng-2.0a/TESTS/init_tests.c:94:6: [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). if(atoi(argv[6]) <= 0) data/sprng-2.0a/TESTS/init_tests.c:123:14: [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). rng_type = atoi(argv[1]); /*--- Get the rand type by reading the 1 arg ---*/ data/sprng-2.0a/TESTS/init_tests.c:124:7: [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). n = atoi(argv[2]); data/sprng-2.0a/TESTS/init_tests.c:125: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). n_combine = atoi(argv[3]); data/sprng-2.0a/TESTS/init_tests.c:126: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). seed = atoi(argv[4]); data/sprng-2.0a/TESTS/init_tests.c:127:11: [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). param = atoi(argv[5]); data/sprng-2.0a/TESTS/init_tests.c:128:19: [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). nsubsequences = atoi(argv[6]); data/sprng-2.0a/TESTS/init_tests.c:129: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). skip = atoi(argv[7]); data/sprng-2.0a/TESTS/init_tests.c:226: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). length = atoi(argv[8]); data/sprng-2.0a/TESTS/maxt.c:41:7: [2] (integer) atol: 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). n = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/maxt.c:42:7: [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). t = atoi(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/metropolis.c:349: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). rng_type = atoi(*argv++); /*--- get rng_type ---*/ data/sprng-2.0a/TESTS/metropolis.c:350: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). seed = atoi(*argv++); data/sprng-2.0a/TESTS/metropolis.c:351:13: [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). param = atoi(*argv++); data/sprng-2.0a/TESTS/metropolis.c:352:20: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). lattice_size = atoi(*argv++); data/sprng-2.0a/TESTS/metropolis.c:353:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). block_size = atoi(*argv++); data/sprng-2.0a/TESTS/metropolis.c:354: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). discard_blocks = atoi(*argv++); data/sprng-2.0a/TESTS/metropolis.c:355:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). use_blocks = atoi(*argv++); data/sprng-2.0a/TESTS/mytest.c:14:7: [2] (integer) atol: 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). n = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/perm.c:45:14: [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). grpSize = atoi(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/perm.c:46:13: [2] (integer) atol: 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). numGrp = atol(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/poker.c:44:7: [2] (integer) atol: 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). n = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/poker.c:45:7: [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). k = atoi(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/poker.c:46:7: [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). d = atoi(argv[N_STREAM_PARAM+3]); data/sprng-2.0a/TESTS/random_walk.c:42:17: [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). walk_length = atoi(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/runs.c:42: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). maxRunLen = atoi(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/runs.c:43:13: [2] (integer) atol: 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). numRun = atol(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/serial.c:44:13: [2] (integer) atol: 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). numDiv = atol(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/serial.c:45:14: [2] (integer) atol: 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). numPair = atol(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/stirling.c:52:7: [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). n = atoi(argv[1]); data/sprng-2.0a/TESTS/stirling.c:53:7: [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). m = atoi(argv[2]); data/sprng-2.0a/TESTS/sum.c:29:34: [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). if(argc != N_STREAM_PARAM+3 || atoi(argv[2]) != 1) data/sprng-2.0a/TESTS/sum.c:38:7: [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). n = atoi(argv[N_STREAM_PARAM+1]); data/sprng-2.0a/TESTS/sum.c:39: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). group_size = atoi(argv[N_STREAM_PARAM+2]); data/sprng-2.0a/TESTS/wolff.c:322: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). rng_type = atoi(*argv++); /*--- get rng_type ---*/ data/sprng-2.0a/TESTS/wolff.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). seed = atoi(*argv++); data/sprng-2.0a/TESTS/wolff.c:324:13: [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). param = atoi(*argv++); data/sprng-2.0a/TESTS/wolff.c:325:20: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). lattice_size = atoi(*argv++); data/sprng-2.0a/TESTS/wolff.c:326:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). block_size = atoi(*argv++); data/sprng-2.0a/TESTS/wolff.c:327: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). discard_blocks = atoi(*argv++); data/sprng-2.0a/TESTS/wolff.c:328:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). use_blocks = atoi(*argv++); data/sprng-2.0a/EXAMPLES/displaybytes.c:8:13: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while( (c=getchar())!=EOF ) data/sprng-2.0a/SRC/.template.c:327:58: [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 = sizeof(struct rngen) + q->narrays*sizeof(int) + strlen(q->gentype)+1; data/sprng-2.0a/SRC/.template.c:341: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). pos += strlen(q->gentype)+1; data/sprng-2.0a/SRC/.template.c:388: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). pos += strlen(q->gentype)+1; data/sprng-2.0a/SRC/cmrg/cmrg.c:522: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). size = 4 + 64 + strlen(q->gentype)+1; data/sprng-2.0a/SRC/cmrg/cmrg.c:536: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/cmrg/cmrg.c:599: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lcg/lcg.c:748: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(q->gentype)+1; data/sprng-2.0a/SRC/lcg/lcg.c:761: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lcg/lcg.c:831: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lcg64/lcg64.c:476: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). size = 4 + 48 + strlen(q->gentype)+1; data/sprng-2.0a/SRC/lcg64/lcg64.c:490: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lcg64/lcg64.c:543: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lfg/lfg.c:877: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). size = 4 + (3*(q->lval)+5)*4 + strlen(q->gentype)+1; data/sprng-2.0a/SRC/lfg/lfg.c:889: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/lfg/lfg.c:929:13: [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). packed += strlen(GENTYPE)+1; data/sprng-2.0a/SRC/mlfg/mlfg.c:691: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). size = 4 + 24+16*q->lval + strlen(q->gentype)+1; data/sprng-2.0a/SRC/mlfg/mlfg.c:702: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/mlfg/mlfg.c:747: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). p += strlen(q->gentype)+1; data/sprng-2.0a/SRC/pmlcg/pmlcg.c:688: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). size = 4 + sizeof(struct rngen) + q->narrays*sizeof(int) + strlen(q->gentype)+1; data/sprng-2.0a/SRC/pmlcg/pmlcg.c:701: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). pos += strlen(q->gentype)+1; data/sprng-2.0a/SRC/pmlcg/pmlcg.c:743: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). pos += strlen(q->gentype)+1; ANALYSIS SUMMARY: Hits = 142 Lines analyzed = 35506 in approximately 0.77 seconds (46183 lines/second) Physical Source Lines of Code (SLOC) = 30572 Hits@level = [0] 487 [1] 22 [2] 102 [3] 1 [4] 17 [5] 0 Hits@level+ = [0+] 629 [1+] 142 [2+] 120 [3+] 18 [4+] 17 [5+] 0 Hits/KSLOC@level+ = [0+] 20.5744 [1+] 4.64477 [2+] 3.92516 [3+] 0.588774 [4+] 0.556064 [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.