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.