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-bioc-shortread-1.48.0/src/Biostrings_stubs.c Examining data/r-bioc-shortread-1.48.0/src/IRanges_stubs.c Examining data/r-bioc-shortread-1.48.0/src/R_init_ShortRead.c Examining data/r-bioc-shortread-1.48.0/src/S4Vectors_stubs.c Examining data/r-bioc-shortread-1.48.0/src/ShortRead.h Examining data/r-bioc-shortread-1.48.0/src/XVector_stubs.c Examining data/r-bioc-shortread-1.48.0/src/alphabet.c Examining data/r-bioc-shortread-1.48.0/src/call.h Examining data/r-bioc-shortread-1.48.0/src/const.h Examining data/r-bioc-shortread-1.48.0/src/count.c Examining data/r-bioc-shortread-1.48.0/src/io.c Examining data/r-bioc-shortread-1.48.0/src/io_bowtie.c Examining data/r-bioc-shortread-1.48.0/src/io_soap.c Examining data/r-bioc-shortread-1.48.0/src/maqmap_m.h Examining data/r-bioc-shortread-1.48.0/src/readBfaToc.cc Examining data/r-bioc-shortread-1.48.0/src/read_maq_map.cc Examining data/r-bioc-shortread-1.48.0/src/sampler.c Examining data/r-bioc-shortread-1.48.0/src/trim.c Examining data/r-bioc-shortread-1.48.0/src/trim.h Examining data/r-bioc-shortread-1.48.0/src/util.c Examining data/r-bioc-shortread-1.48.0/src/xsnap.c FINAL RESULTS: data/r-bioc-shortread-1.48.0/src/io.c:111:17: [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. snprintf(gzbuf, gzbuf_n, fmt, idbuf0, readbuf, idbuf1, qualbuf); data/r-bioc-shortread-1.48.0/src/io.c:116:17: [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. snprintf(gzbuf, gzbuf_n, fmt, idbuf0, readbuf, idbuf1, qualbuf); data/r-bioc-shortread-1.48.0/src/io.c:120: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. if (fprintf(fout, fmt, idbuf0, readbuf, idbuf1, qualbuf) < 0) { data/r-bioc-shortread-1.48.0/src/xsnap.c:107: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(buffer->baseclass, baseclass); data/r-bioc-shortread-1.48.0/src/xsnap.c:243:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(class, "%sSet", baseclass); data/r-bioc-shortread-1.48.0/src/io.c:92: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). fout = fopen(CHAR(STRING_ELT(fname, 0)), CHAR(STRING_ELT(fmode, 0))); data/r-bioc-shortread-1.48.0/src/io.c:223: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[LINEBUF_SIZE + 1]; data/r-bioc-shortread-1.48.0/src/io.c:277: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 linebuf[LINEBUF_SIZE]; data/r-bioc-shortread-1.48.0/src/io.c:585: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 linebuf[LINEBUF_SIZE], data/r-bioc-shortread-1.48.0/src/io.c:628: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). lane[irec] = atoi(elt[2]); data/r-bioc-shortread-1.48.0/src/io.c:629: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). tile[irec] = atoi(elt[3]); data/r-bioc-shortread-1.48.0/src/io.c:630: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). x[irec] = atoi(elt[4]); data/r-bioc-shortread-1.48.0/src/io.c:631: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). y[irec] = atoi(elt[5]); data/r-bioc-shortread-1.48.0/src/io.c:637:38: [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). pairedReadNumber[irec] = atoi(elt[7]); data/r-bioc-shortread-1.48.0/src/io.c:645:30: [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). position[irec] = atoi(elt[12]); data/r-bioc-shortread-1.48.0/src/io.c:664:30: [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). alignQuality[irec] = atoi(elt[15]); data/r-bioc-shortread-1.48.0/src/io.c:708: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[LINEBUF_SIZE]; data/r-bioc-shortread-1.48.0/src/io_bowtie.c:21:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char linebuf[LINEBUF_SIZE], data/r-bioc-shortread-1.48.0/src/io_bowtie.c:52: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). position[irec] = atoi(elt[3]) + 1; /* leftmost-aligned, 0-based */ data/r-bioc-shortread-1.48.0/src/io_bowtie.c:59:25: [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). similar[irec] = atoi(elt[6]); /* previous: 'reserved' */ data/r-bioc-shortread-1.48.0/src/io_soap.c:22:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char linebuf[LINEBUF_SIZE], data/r-bioc-shortread-1.48.0/src/io_soap.c:53:36: [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). nEquallyBestHits[offset] = atoi(elt[3]); data/r-bioc-shortread-1.48.0/src/io_soap.c:55:33: [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). alignedLength[offset] = atoi(elt[5]); data/r-bioc-shortread-1.48.0/src/io_soap.c:58: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). position[offset] = atoi(elt[8]); /* leftmost-aligned, 1-based */ data/r-bioc-shortread-1.48.0/src/io_soap.c:59:29: [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). typeOfHit[offset] = atoi(elt[9]); data/r-bioc-shortread-1.48.0/src/maqmap_m.h:50: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 name[MAX_NAMELEN]; data/r-bioc-shortread-1.48.0/src/readBfaToc.cc:20: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 seq_name[201]; data/r-bioc-shortread-1.48.0/src/readBfaToc.cc:25:9: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fp = fopen( CHAR(STRING_ELT(bfa_filename,0)), "r" ); data/r-bioc-shortread-1.48.0/src/readBfaToc.cc:27:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[300]; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:29: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 readseqbuf[ max_readlen ], fastqbuf[ max_readlen ]; data/r-bioc-shortread-1.48.0/src/sampler.c:144: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((char *) x.ptr, start, (buf - start) * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:241: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(intern_record, record, len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:319: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(bytes, record, len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:357: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(buf, scratch->bytes, scratch->len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:359: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(buf + scratch->len, RAW(bin), len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:365: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(buf, RAW(bin), buflen * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:389: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(tail, buf, len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:510: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(scratch->bytes, RAW(bin), len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:515: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(bytes, scratch->bytes, buflen * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:516: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(bytes + buflen, RAW(bin), len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/sampler.c:550: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(tail, buf, len * sizeof(Rbyte)); data/r-bioc-shortread-1.48.0/src/util.c:198: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 linebuf[LINEBUF_SIZE]; data/r-bioc-shortread-1.48.0/src/util.c:199:17: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((file = fopen(CHAR(STRING_ELT(filename, 0)), "rb")) == NULL) data/r-bioc-shortread-1.48.0/src/util.c:296:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char map[256]; data/r-bioc-shortread-1.48.0/src/xsnap.c:73: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(node->curr, s, w); data/r-bioc-shortread-1.48.0/src/xsnap.c:86: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(RAW(seq), node->buf, n_raw); data/r-bioc-shortread-1.48.0/src/xsnap.c:196: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 classname[40]; /* longest string should be "DNAStringSet" */ data/r-bioc-shortread-1.48.0/src/io.c:40:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(buf, chars_holder.ptr, chars_holder.length); data/r-bioc-shortread-1.48.0/src/io.c:241:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (read >= n_reads) { data/r-bioc-shortread-1.48.0/src/io_bowtie.c:60:24: [1] (buffer) mismatch: 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. SET_STRING_ELT(mismatch, irec, mkChar(elt[7])); data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:32:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). maqmap1_T<max_readlen> read; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:106:46: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). maqmap_read1<max_readlen>( mapfile, &read ); data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:107:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if( read.flag || read.dist ) { data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:107:26: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if( read.flag || read.dist ) { data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:113:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if( read.size > max_readlen ) data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:115:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). for (j = 0; j < read.size; j++) { data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:116:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (read.seq[j] == 0) data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:119:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). readseqbuf[j] = enc[ read.seq[j] >> 6 & 0x03 ]; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:120:29: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). fastqbuf[j] = ( read.seq[j] & 0x3f ) + 33; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:122:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). readseqbuf[ read.size ] = 0; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:123:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). fastqbuf [ read.size ] = 0; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:126:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(start)[i] = ( read.pos >> 1 ) + 1; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:127:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(dir )[i] = ( read.pos & 0x01 ) + 1; /* '+': 1, '-': 2 */ data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:128:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(seq )[i] = read.seqid + 1; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:129:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(aq )[i] = read.map_qual; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:130:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(mm )[i] = read.info1 & 0x0f; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:131:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(mm24 )[i] = read.info1 >> 4; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:132:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(errsum)[i] = read.info2; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:133:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(nhits0)[i] = read.c[0]; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:134:30: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). INTEGER(nhits1)[i] = read.c[1]; data/r-bioc-shortread-1.48.0/src/read_maq_map.cc:135:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). CharAEAE_append_string( readid, read.name ); data/r-bioc-shortread-1.48.0/src/util.c:263: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). i = strlen(linebuf) - 1; data/r-bioc-shortread-1.48.0/src/util.c:283:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t len = strlen(linebuf); data/r-bioc-shortread-1.48.0/src/util.c:312: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). for (unsigned int i = 0; i < strlen(linebuf); ++i) data/r-bioc-shortread-1.48.0/src/xsnap.c:104: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). buffer->baseclass = Calloc(strlen(baseclass) + 1, char); data/r-bioc-shortread-1.48.0/src/xsnap.c:127: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). int w = strlen(s); data/r-bioc-shortread-1.48.0/src/xsnap.c:242:36: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *class = (char *) R_alloc(strlen(baseclass) + 4, sizeof(char)); ANALYSIS SUMMARY: Hits = 77 Lines analyzed = 3606 in approximately 0.15 seconds (24849 lines/second) Physical Source Lines of Code (SLOC) = 2953 Hits@level = [0] 10 [1] 30 [2] 42 [3] 0 [4] 5 [5] 0 Hits@level+ = [0+] 87 [1+] 77 [2+] 47 [3+] 5 [4+] 5 [5+] 0 Hits/KSLOC@level+ = [0+] 29.4616 [1+] 26.0752 [2+] 15.916 [3+] 1.69319 [4+] 1.69319 [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.