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/fast5-0.6.5/include/fast5.hpp Examining data/fast5-0.6.5/include/fast5/Bit_Packer.hpp Examining data/fast5-0.6.5/include/fast5/Huffman_Packer.hpp Examining data/fast5-0.6.5/include/fast5/fast5_version.hpp Examining data/fast5-0.6.5/include/fast5/hdf5_tools.hpp Examining data/fast5-0.6.5/include/fast5/logger.hpp Examining data/fast5-0.6.5/src/File_Packer.hpp Examining data/fast5-0.6.5/src/f5-mod.cpp Examining data/fast5-0.6.5/src/f5dump.cpp Examining data/fast5-0.6.5/src/f5ls-full.cpp Examining data/fast5-0.6.5/src/f5ls.cpp Examining data/fast5-0.6.5/src/f5pack.cpp Examining data/fast5-0.6.5/src/hdf5-mod.cpp Examining data/fast5-0.6.5/src/huffman-decode.cpp Examining data/fast5-0.6.5/src/huffman-encode.cpp Examining data/fast5-0.6.5/src/tmp.cpp FINAL RESULTS: data/fast5-0.6.5/include/fast5.hpp:641:60: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). File(std::string const & file_name, bool rw = false) { open(file_name, rw); } data/fast5-0.6.5/include/fast5.hpp:658:5: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). open(std::string const & file_name, bool rw = false) data/fast5-0.6.5/include/fast5.hpp:660:15: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). Base::open(file_name, rw); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:141:23: [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. struct mem_type_class<char const[Size]> data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:1208:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&out[i][0], tmp[i].data(), std::min(tmp[i].size(), sizeof(Data_Type) - 1)); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:1300:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(reinterpret_cast<char *>(&out[i]) + p.second, data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:1834:74: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). File(std::string const & file_name, bool rw = false) : _file_id(0) { open(file_name, rw); } data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:1867:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(std::string const & file_name, bool rw = false) data/fast5-0.6.5/src/File_Packer.hpp:155:19: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). src_f.open(ifn); data/fast5-0.6.5/src/f5-mod.cpp:35:15: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(file_name, true); data/fast5-0.6.5/src/f5dump.cpp:60:11: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(opts::input_fn); data/fast5-0.6.5/src/f5ls-full.cpp:61:15: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(file_name); data/fast5-0.6.5/src/f5ls.cpp:61:15: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(file_name); data/fast5-0.6.5/src/hdf5-mod.cpp:35: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 val_3[6]; data/fast5-0.6.5/src/hdf5-mod.cpp:146: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 val_3[6] = "ACGTA"; data/fast5-0.6.5/src/hdf5-mod.cpp:237:15: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(file_name); data/fast5-0.6.5/include/fast5.hpp:59:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:61:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/channel_number", channel_number); data/fast5-0.6.5/include/fast5.hpp:62:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/digitisation", digitisation); data/fast5-0.6.5/include/fast5.hpp:63:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/offset", offset); data/fast5-0.6.5/include/fast5.hpp:64:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/range", range); data/fast5-0.6.5/include/fast5.hpp:65:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/sampling_rate", sampling_rate); data/fast5-0.6.5/include/fast5.hpp:101:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:103:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/read_id", read_id); data/fast5-0.6.5/include/fast5.hpp:104:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/read_number", read_number); data/fast5-0.6.5/include/fast5.hpp:105:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_mux", start_mux); data/fast5-0.6.5/include/fast5.hpp:106:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_time", start_time); data/fast5-0.6.5/include/fast5.hpp:107:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/duration", duration); data/fast5-0.6.5/include/fast5.hpp:129:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:131:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Signal", signal); data/fast5-0.6.5/include/fast5.hpp:133:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). params.read(f, p + "/params"); data/fast5-0.6.5/include/fast5.hpp:208:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:212:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/read_number", read_number); data/fast5-0.6.5/include/fast5.hpp:213:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/scaling_used", scaling_used); data/fast5-0.6.5/include/fast5.hpp:214:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_mux", start_mux); data/fast5-0.6.5/include/fast5.hpp:215:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_time", start_time); data/fast5-0.6.5/include/fast5.hpp:216:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/duration", duration); data/fast5-0.6.5/include/fast5.hpp:220:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/read_id", read_id); data/fast5-0.6.5/include/fast5.hpp:224:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/median_before", median_before); data/fast5-0.6.5/include/fast5.hpp:232:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/abasic_found", abasic_found); data/fast5-0.6.5/include/fast5.hpp:263:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:265:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Skip", skip); data/fast5-0.6.5/include/fast5.hpp:267:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Len", len); data/fast5-0.6.5/include/fast5.hpp:269:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). params.read(f, p + "/params"); data/fast5-0.6.5/include/fast5.hpp:333:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:335:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/scale", scale); data/fast5-0.6.5/include/fast5.hpp:336:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/shift", shift); data/fast5-0.6.5/include/fast5.hpp:337:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/drift", drift); data/fast5-0.6.5/include/fast5.hpp:338:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/var", var); data/fast5-0.6.5/include/fast5.hpp:339:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/scale_sd", scale_sd); data/fast5-0.6.5/include/fast5.hpp:340:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/var_sd", var_sd); data/fast5-0.6.5/include/fast5.hpp:362:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:364:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/BP", bp); data/fast5-0.6.5/include/fast5.hpp:366:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/QV", qv); data/fast5-0.6.5/include/fast5.hpp:368:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/read_name", read_name); data/fast5-0.6.5/include/fast5.hpp:369:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/qv_bits", qv_bits); data/fast5-0.6.5/include/fast5.hpp:435:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:439:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_time", start_time); data/fast5-0.6.5/include/fast5.hpp:447:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/duration", duration); data/fast5-0.6.5/include/fast5.hpp:486:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:490:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Rel_Skip", rel_skip); data/fast5-0.6.5/include/fast5.hpp:495:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Skip", skip); data/fast5-0.6.5/include/fast5.hpp:497:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Len", len); data/fast5-0.6.5/include/fast5.hpp:500:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Move", move); data/fast5-0.6.5/include/fast5.hpp:502:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/P_Model_State", p_model_state); data/fast5-0.6.5/include/fast5.hpp:504:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/name", name); data/fast5-0.6.5/include/fast5.hpp:505:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/version", version); data/fast5-0.6.5/include/fast5.hpp:506:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/ed_gr", ed_gr); data/fast5-0.6.5/include/fast5.hpp:507:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/start_time", start_time); data/fast5-0.6.5/include/fast5.hpp:508:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/state_size", state_size); data/fast5-0.6.5/include/fast5.hpp:509:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/median_sd_temp", median_sd_temp); data/fast5-0.6.5/include/fast5.hpp:510:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/p_model_state_bits", p_model_state_bits); data/fast5-0.6.5/include/fast5.hpp:511:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). params.read(f, p + "/params"); data/fast5-0.6.5/include/fast5.hpp:585:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(hdf5_tools::File const & f, std::string const & p) data/fast5-0.6.5/include/fast5.hpp:587:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Template_Step", template_step); data/fast5-0.6.5/include/fast5.hpp:589:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Complement_Step", complement_step); data/fast5-0.6.5/include/fast5.hpp:591:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/Move", move); data/fast5-0.6.5/include/fast5.hpp:593:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/template_index_start", template_index_start); data/fast5-0.6.5/include/fast5.hpp:594:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/complement_index_start", complement_index_start); data/fast5-0.6.5/include/fast5.hpp:595:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(p + "/kmer_size", kmer_size); data/fast5-0.6.5/include/fast5.hpp:671:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(file_version_path(), res); data/fast5-0.6.5/include/fast5.hpp:791:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). res.read(*this, raw_samples_params_path(_rn)); data/fast5-0.6.5/include/fast5.hpp:795:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). res.read(*this, raw_samples_params_pack_path(_rn)); data/fast5-0.6.5/include/fast5.hpp:812:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(raw_samples_path(_rn), res); data/fast5-0.6.5/include/fast5.hpp:913:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). res.read(*this, eventdetection_events_params_path(_gr, _rn)); data/fast5-0.6.5/include/fast5.hpp:917:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). res.read(*this, eventdetection_events_params_pack_path(_gr, _rn)); data/fast5-0.6.5/include/fast5.hpp:944:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(p, ede, EventDetection_Event::compound_map()); data/fast5-0.6.5/include/fast5.hpp:948:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(p, ede, EventDetection_Event::alt_compound_map()); data/fast5-0.6.5/include/fast5.hpp:1068:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_log_path(gr), res); data/fast5-0.6.5/include/fast5.hpp:1119:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_fastq_path(_gr, st), res); data/fast5-0.6.5/include/fast5.hpp:1172:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_model_file_path(gr_1d, st), res); data/fast5-0.6.5/include/fast5.hpp:1186:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). params.read(*this, path); data/fast5-0.6.5/include/fast5.hpp:1200:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_model_path(gr_1d, st), mod, Basecall_Model_State::compound_map()); data/fast5-0.6.5/include/fast5.hpp:1238:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bce_params.read(*this, basecall_events_path(gr_1d, st)); data/fast5-0.6.5/include/fast5.hpp:1242:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bce_params.read(*this, basecall_events_params_pack_path(gr_1d, st)); data/fast5-0.6.5/include/fast5.hpp:1265:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_events_path(gr_1d, st), res, Basecall_Event::compound_map()); data/fast5-0.6.5/include/fast5.hpp:1339:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(basecall_alignment_path(_gr), al, Basecall_Alignment_Entry::compound_map()); data/fast5-0.6.5/include/fast5.hpp:1436:28: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). _channel_id_params.read(*this, channel_id_path()); data/fast5-0.6.5/include/fast5.hpp:1591:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(path, tmp); data/fast5-0.6.5/include/fast5.hpp:1651:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(segmentation_link_path, segmentation_path); data/fast5-0.6.5/include/fast5.hpp:1655:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Base::read(median_sd_temp_path, res); data/fast5-0.6.5/include/fast5.hpp:1708:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). rs_pack.read(*this, path); data/fast5-0.6.5/include/fast5.hpp:1747:18: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ede_pack.read(*this, eventdetection_events_pack_path(gr, rn)); data/fast5-0.6.5/include/fast5.hpp:1781:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). fq_pack.read(*this, p); data/fast5-0.6.5/include/fast5.hpp:1797:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ev_pack.read(*this, p); data/fast5-0.6.5/include/fast5.hpp:1827:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). al_pack.read(*this, p); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:1992:5: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(std::string const & loc_full_name, Data_Storage & out, Args && ...args) const data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:2142:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(full_path + "/" + a, tmp); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:2252:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). src_f.read(src_full_path, tmp); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:2258:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). src_f.read(src_full_path, tmp); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:2269:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). src_f.read(src_full_path, tmp); data/fast5-0.6.5/include/fast5/hdf5_tools.hpp:2275:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). src_f.read(src_full_path, tmp); data/fast5-0.6.5/src/hdf5-mod.cpp:245:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read("/val_6d_v", dest, cm_A); data/fast5-0.6.5/src/hdf5-mod.cpp:274:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read("/val_6d_v", dest, cm_A_string); data/fast5-0.6.5/src/hdf5-mod.cpp:300:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read("/val_6d_v", dest, cm_A_char_array); ANALYSIS SUMMARY: Hits = 115 Lines analyzed = 8524 in approximately 0.28 seconds (30350 lines/second) Physical Source Lines of Code (SLOC) = 7055 Hits@level = [0] 0 [1] 99 [2] 16 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 115 [1+] 115 [2+] 16 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 16.3005 [1+] 16.3005 [2+] 2.2679 [3+] 0 [4+] 0 [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.