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/zipios++-2.2.6/src/backbuffer.cpp Examining data/zipios++-2.2.6/src/backbuffer.hpp Examining data/zipios++-2.2.6/src/collectioncollection.cpp Examining data/zipios++-2.2.6/src/deflateoutputstreambuf.cpp Examining data/zipios++-2.2.6/src/deflateoutputstreambuf.hpp Examining data/zipios++-2.2.6/src/directorycollection.cpp Examining data/zipios++-2.2.6/src/directoryentry.cpp Examining data/zipios++-2.2.6/src/dosdatetime.cpp Examining data/zipios++-2.2.6/src/filecollection.cpp Examining data/zipios++-2.2.6/src/fileentry.cpp Examining data/zipios++-2.2.6/src/filepath.cpp Examining data/zipios++-2.2.6/src/filterinputstreambuf.cpp Examining data/zipios++-2.2.6/src/filterinputstreambuf.hpp Examining data/zipios++-2.2.6/src/filteroutputstreambuf.cpp Examining data/zipios++-2.2.6/src/filteroutputstreambuf.hpp Examining data/zipios++-2.2.6/src/gzipoutputstream.cpp Examining data/zipios++-2.2.6/src/gzipoutputstream.hpp Examining data/zipios++-2.2.6/src/gzipoutputstreambuf.cpp Examining data/zipios++-2.2.6/src/gzipoutputstreambuf.hpp Examining data/zipios++-2.2.6/src/inflateinputstreambuf.cpp Examining data/zipios++-2.2.6/src/inflateinputstreambuf.hpp Examining data/zipios++-2.2.6/src/virtualseeker.cpp Examining data/zipios++-2.2.6/src/zipcentraldirectoryentry.cpp Examining data/zipios++-2.2.6/src/zipcentraldirectoryentry.hpp Examining data/zipios++-2.2.6/src/zipendofcentraldirectory.cpp Examining data/zipios++-2.2.6/src/zipendofcentraldirectory.hpp Examining data/zipios++-2.2.6/src/zipfile.cpp Examining data/zipios++-2.2.6/src/zipinputstream.cpp Examining data/zipios++-2.2.6/src/zipinputstream.hpp Examining data/zipios++-2.2.6/src/zipinputstreambuf.cpp Examining data/zipios++-2.2.6/src/zipinputstreambuf.hpp Examining data/zipios++-2.2.6/src/zipios_common.cpp Examining data/zipios++-2.2.6/src/zipios_common.hpp Examining data/zipios++-2.2.6/src/ziplocalentry.cpp Examining data/zipios++-2.2.6/src/ziplocalentry.hpp Examining data/zipios++-2.2.6/src/zipoutputstream.cpp Examining data/zipios++-2.2.6/src/zipoutputstream.hpp Examining data/zipios++-2.2.6/src/zipoutputstreambuf.cpp Examining data/zipios++-2.2.6/src/zipoutputstreambuf.hpp Examining data/zipios++-2.2.6/tests/backbuffer.cpp Examining data/zipios++-2.2.6/tests/collectioncollection.cpp Examining data/zipios++-2.2.6/tests/common.cpp Examining data/zipios++-2.2.6/tests/directory_helper.cpp Examining data/zipios++-2.2.6/tests/directorycollection.cpp Examining data/zipios++-2.2.6/tests/directoryentry.cpp Examining data/zipios++-2.2.6/tests/dosdatetime.cpp Examining data/zipios++-2.2.6/tests/filepath.cpp Examining data/zipios++-2.2.6/tests/raii_helper.cpp Examining data/zipios++-2.2.6/tests/stream.cpp Examining data/zipios++-2.2.6/tests/tests.cpp Examining data/zipios++-2.2.6/tests/tests.hpp Examining data/zipios++-2.2.6/tests/virtualseeker.cpp Examining data/zipios++-2.2.6/tests/zipfile.cpp Examining data/zipios++-2.2.6/tools/appendzip.cpp Examining data/zipios++-2.2.6/tools/dosdatetime.cpp Examining data/zipios++-2.2.6/tools/zipios.cpp Examining data/zipios++-2.2.6/tools/zipios_example.cpp Examining data/zipios++-2.2.6/zipios/collectioncollection.hpp Examining data/zipios++-2.2.6/zipios/directorycollection.hpp Examining data/zipios++-2.2.6/zipios/directoryentry.hpp Examining data/zipios++-2.2.6/zipios/dosdatetime.hpp Examining data/zipios++-2.2.6/zipios/filecollection.hpp Examining data/zipios++-2.2.6/zipios/fileentry.hpp Examining data/zipios++-2.2.6/zipios/filepath.hpp Examining data/zipios++-2.2.6/zipios/virtualseeker.hpp Examining data/zipios++-2.2.6/zipios/zipfile.hpp Examining data/zipios++-2.2.6/zipios/zipiosexceptions.hpp Examining data/zipios++-2.2.6/debian/zipios-config.h FINAL RESULTS: data/zipios++-2.2.6/tests/collectioncollection.cpp:109:21: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree") != -1); // clean up, just in case data/zipios++-2.2.6/tests/collectioncollection.cpp:547:21: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree[1-5]")!=-1); // clean up, just in case data/zipios++-2.2.6/tests/directorycollection.cpp:238:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree") == 0); // clean up, just in case data/zipios++-2.2.6/tests/directorycollection.cpp:904:13: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree") == 0); // clean up, just in case data/zipios++-2.2.6/tests/directorycollection.cpp:923:13: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree") == 0); // clean up, just in case data/zipios++-2.2.6/tests/directoryentry.cpp:1262:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf filepath-test") == 0); data/zipios++-2.2.6/tests/filepath.cpp:627:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf filepath-test") == 0); data/zipios++-2.2.6/tests/zipfile.cpp:150:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree") == 0); // clean up, just in case data/zipios++-2.2.6/tests/zipfile.cpp:154:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("zip -r tree.zip tree >/dev/null") == 0); data/zipios++-2.2.6/tests/zipfile.cpp:398:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -rf tree tree.zip") == 0); // clean up, just in case data/zipios++-2.2.6/tests/zipfile.cpp:634:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -f file.bin") == 0); // clean up, just in case data/zipios++-2.2.6/tests/zipfile.cpp:829:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -f file.bin") == 0); // clean up, just in case data/zipios++-2.2.6/tests/zipfile.cpp:867:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -f file.bin") == 0); // clean up, just in case data/zipios++-2.2.6/tests/zipfile.cpp:907:17: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. REQUIRE(system("rm -f file.zip file?.bin") == 0); // clean up, just in case data/zipios++-2.2.6/src/zipcentraldirectoryentry.cpp:244:12: [3] (random) setstate: 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. is.setstate(std::ios::failbit); data/zipios++-2.2.6/src/zipfile.cpp:543:12: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/src/ziplocalentry.cpp:349:12: [3] (random) setstate: 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. is.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/common.cpp:896:16: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/common.cpp:912:16: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/common.cpp:928:16: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/common.cpp:944:16: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/common.cpp:960:16: [3] (random) setstate: 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. os.setstate(std::ios::failbit); data/zipios++-2.2.6/tests/tests.cpp:89:5: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand(seed); data/zipios++-2.2.6/src/zipios_common.cpp:76:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[sizeof(value)]; data/zipios++-2.2.6/src/zipios_common.cpp:97:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[sizeof(value)]; data/zipios++-2.2.6/src/zipios_common.cpp:116:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[sizeof(value)]; data/zipios++-2.2.6/src/zipios_common.cpp:239: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[sizeof(value)]; data/zipios++-2.2.6/src/zipios_common.cpp:255:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[sizeof(value)]; data/zipios++-2.2.6/src/zipios_common.cpp:269: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[sizeof(value)]; data/zipios++-2.2.6/tests/collectioncollection.cpp:188:33: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/collectioncollection.cpp:291:33: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/collectioncollection.cpp:388:33: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/collectioncollection.cpp:485:33: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/collectioncollection.cpp:648:37: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/collectioncollection.cpp:754:41: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/common.cpp:668:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[8]; data/zipios++-2.2.6/tests/common.cpp:700:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[8]; data/zipios++-2.2.6/tests/common.cpp:732:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[10]; data/zipios++-2.2.6/tests/common.cpp:765:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[6]; data/zipios++-2.2.6/tests/common.cpp:796:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[7]; data/zipios++-2.2.6/tests/common.cpp:836:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[13]; data/zipios++-2.2.6/tests/common.cpp:874:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[9]; data/zipios++-2.2.6/tests/directory_helper.cpp:43:1: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char const g_letters[66]{ data/zipios++-2.2.6/tests/directorycollection.cpp:538:29: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/directorycollection.cpp:863:33: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/virtualseeker.cpp:61: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[256]; data/zipios++-2.2.6/tests/zipfile.cpp:237:29: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/zipfile.cpp:351:29: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/zipfile.cpp:491:29: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/zipfile.cpp:604:29: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/zipfile.cpp:718:25: [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 buf1[BUFSIZ], buf2[BUFSIZ]; data/zipios++-2.2.6/tests/zipfile.cpp:1639:17: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[BUFSIZ]; data/zipios++-2.2.6/tools/dosdatetime.cpp:151:13: [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[256]; data/zipios++-2.2.6/tools/dosdatetime.cpp:154:17: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(buf, "- -"); data/zipios++-2.2.6/src/fileentry.cpp:732:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void FileEntry::read(std::istream& is) data/zipios++-2.2.6/src/zipcentraldirectoryentry.cpp:235:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void ZipCentralDirectoryEntry::read(std::istream& is) data/zipios++-2.2.6/src/zipcentraldirectoryentry.hpp:53:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(std::istream& is) override; data/zipios++-2.2.6/src/zipendofcentraldirectory.cpp:228:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bool ZipEndOfCentralDirectory::read(::zipios::buffer_t const& buf, size_t pos) data/zipios++-2.2.6/src/zipendofcentraldirectory.hpp:57:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bool read(::zipios::buffer_t const& buf, size_t pos); data/zipios++-2.2.6/src/zipfile.cpp:371:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(eocd.read(bb, read_p)) data/zipios++-2.2.6/src/zipfile.cpp:392:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). m_entries[entry_num].get()->read(zipfile); data/zipios++-2.2.6/src/zipfile.cpp:418:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). zlh.read(zipfile); data/zipios++-2.2.6/src/zipinputstreambuf.cpp:65:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). m_current_entry.read(is); data/zipios++-2.2.6/src/zipios_common.cpp:78:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(!is.read(reinterpret_cast<char *>(buf), sizeof(value))) data/zipios++-2.2.6/src/zipios_common.cpp:99:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(!is.read(reinterpret_cast<char *>(buf), sizeof(value))) data/zipios++-2.2.6/src/zipios_common.cpp:118:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(!is.read(reinterpret_cast<char *>(buf), sizeof(value))) data/zipios++-2.2.6/src/zipios_common.cpp:137:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(!is.read(reinterpret_cast<char *>(&buffer[0]), count)) data/zipios++-2.2.6/src/zipios_common.cpp:154:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if(!is.read(reinterpret_cast<char *>(&str[0]), count)) data/zipios++-2.2.6/src/ziplocalentry.cpp:335:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void ZipLocalEntry::read(std::istream& is) data/zipios++-2.2.6/src/ziplocalentry.hpp:62:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(std::istream& is) override; data/zipios++-2.2.6/tests/collectioncollection.cpp:190:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:193:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/collectioncollection.cpp:293:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:296:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/collectioncollection.cpp:390:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:393:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/collectioncollection.cpp:487:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:490:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/collectioncollection.cpp:650:40: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:653:41: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/collectioncollection.cpp:756:44: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/collectioncollection.cpp:759:45: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/common.cpp:669:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 8); data/zipios++-2.2.6/tests/common.cpp:701:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 8); data/zipios++-2.2.6/tests/common.cpp:733:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 10); data/zipios++-2.2.6/tests/common.cpp:766:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 6); data/zipios++-2.2.6/tests/common.cpp:797:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 7); data/zipios++-2.2.6/tests/common.cpp:837:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 13); data/zipios++-2.2.6/tests/common.cpp:875:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, 9); data/zipios++-2.2.6/tests/directorycollection.cpp:304:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:367:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:426:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:485:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:540:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/directorycollection.cpp:543:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/directorycollection.cpp:643:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:699:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:756:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:813:50: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directorycollection.cpp:865:36: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/directorycollection.cpp:868:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/directorycollection.cpp:977:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS((*it)->read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/directoryentry.cpp:92:34: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). REQUIRE_THROWS_AS(de.read(std::cin), zipios::IOException &); data/zipios++-2.2.6/tests/filepath.cpp:147:38: [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. zipios::FilePath equal("/this/file/really/should/not/exist/period.txt"); data/zipios++-2.2.6/tests/filepath.cpp:148:35: [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. REQUIRE(fp == equal); data/zipios++-2.2.6/tests/virtualseeker.cpp:109:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz); data/zipios++-2.2.6/tests/virtualseeker.cpp:137:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz2); data/zipios++-2.2.6/tests/virtualseeker.cpp:167:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz); data/zipios++-2.2.6/tests/virtualseeker.cpp:198:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz2); data/zipios++-2.2.6/tests/virtualseeker.cpp:270:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz); data/zipios++-2.2.6/tests/virtualseeker.cpp:299:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read(buf, sz); data/zipios++-2.2.6/tests/zipfile.cpp:239:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/zipfile.cpp:242:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/zipfile.cpp:353:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/zipfile.cpp:356:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/zipfile.cpp:493:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/zipfile.cpp:496:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/zipfile.cpp:606:32: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/zipfile.cpp:609:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/zipfile.cpp:720:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(buf1, sizeof(buf1)); data/zipios++-2.2.6/tests/zipfile.cpp:723:29: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is->read(buf2, sizeof(buf2)); data/zipios++-2.2.6/tests/zipfile.cpp:1640:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in->read(buf, sizeof(buf)); data/zipios++-2.2.6/zipios/fileentry.hpp:128:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read(std::istream& is); ANALYSIS SUMMARY: Hits = 123 Lines analyzed = 19722 in approximately 0.60 seconds (32806 lines/second) Physical Source Lines of Code (SLOC) = 10133 Hits@level = [0] 0 [1] 69 [2] 31 [3] 9 [4] 14 [5] 0 Hits@level+ = [0+] 123 [1+] 123 [2+] 54 [3+] 23 [4+] 14 [5+] 0 Hits/KSLOC@level+ = [0+] 12.1386 [1+] 12.1386 [2+] 5.32912 [3+] 2.26981 [4+] 1.38162 [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.