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/libgrokj2k-7.6.0/cmake/TestFileOffsetBits.c
Examining data/libgrokj2k-7.6.0/src/bin/common/color.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/color.h
Examining data/libgrokj2k-7.6.0/src/bin/common/common.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/common.h
Examining data/libgrokj2k-7.6.0/src/bin/common/convert.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/convert.h
Examining data/libgrokj2k-7.6.0/src/bin/common/grok_string.h
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/async.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/cfg.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/color_sinks.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/file_sinks.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/fmt.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/spdlog.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/spdlog/stdout_sinks.cpp
Examining data/libgrokj2k-7.6.0/src/bin/common/windirent.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/IImageFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/ImageFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/ImageFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/JPEGFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/JPEGFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PNGFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PNGFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.cpp
Examining data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.h
Examining data/libgrokj2k-7.6.0/src/bin/image_format/iccjpeg.c
Examining data/libgrokj2k-7.6.0/src/bin/image_format/iccjpeg.h
Examining data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp
Examining data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp
Examining data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp
Examining data/libgrokj2k-7.6.0/src/include/spdlog/async.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/async_logger-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/async_logger.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/cfg/argv.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/cfg/env.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/cfg/helpers-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/cfg/helpers.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/cfg/log_levels.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/common-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/common.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/backtracer-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/backtracer.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/circular_q.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/console_globals.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/file_helper-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/file_helper.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/fmt_helper.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/log_msg-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/log_msg.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/log_msg_buffer-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/log_msg_buffer.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/mpmc_blocking_q.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/null_mutex.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/os.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/periodic_worker-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/periodic_worker.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/registry-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/registry.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/synchronous_factory.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/tcp_client-windows.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/tcp_client.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/thread_pool-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/thread_pool.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/details/windows_include.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bin_to_hex.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/chrono.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/color.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/compile.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/core.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/locale.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/ostream.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/posix.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/ranges.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/fmt.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fmt/ostr.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/formatter.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/fwd.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/logger-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/logger.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/pattern_formatter-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/pattern_formatter.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/android_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/ansicolor_sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/ansicolor_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/base_sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/base_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/basic_file_sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/basic_file_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/daily_file_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/dist_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/dup_filter_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/msvc_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/null_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/ostream_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/ringbuffer_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/rotating_file_sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/rotating_file_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/stdout_color_sinks-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/stdout_color_sinks.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/stdout_sinks-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/stdout_sinks.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/syslog_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/systemd_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/tcp_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/win_eventlog_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/wincolor_sink-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/sinks/wincolor_sink.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/spdlog-inl.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/spdlog.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/tweakme.h
Examining data/libgrokj2k-7.6.0/src/include/spdlog/version.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/Arg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ArgContainer.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ArgException.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ArgGroup.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ArgTraits.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/CmdLine.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/CmdLineInterface.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/CmdLineOutput.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/Constraint.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/DeferDelete.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/DocBookOutput.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/HelpVisitor.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/IgnoreRestVisitor.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/MultiArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/MultiSwitchArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/OptionalUnlabeledTracker.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/StandardTraits.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/StdOutput.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/SwitchArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/UnlabeledMultiArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/UnlabeledValueArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ValueArg.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ValuesConstraint.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/VersionVisitor.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/Visitor.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/XorHandler.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/ZshCompletionOutput.h
Examining data/libgrokj2k-7.6.0/src/include/tclap/sstream.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/TileComponent.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/TileComponent.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/TileComponentBuffer.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/TileProcessor.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/TileProcessor.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodingParams.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodingParams.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/HTParams.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/HTParams.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/IBitIO.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/PacketIter.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/PacketIter.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Profile.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Profile.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Quantizer.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Quantizer.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/TagTree.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/TagTree.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/LengthMarkers.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/LengthMarkers.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SIZMarker.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SIZMarker.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SOTMarker.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SOTMarker.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/grok.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/grok.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/grok_includes.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/image.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/image.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/mct/invert.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/mct/invert.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/mct/mct.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/mct/mct.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_common.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/plugin_bridge.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/plugin_bridge.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/plugin/plugin_interface.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Decoder.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Decoder.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Encoder.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Encoder.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Factory.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Factory.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/T1Interface.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/Tier1.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/Tier1.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/T1HT.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/T1HT.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_decoder.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_decoder.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_encoder.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_encoder.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/table0.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/table1.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_arch.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_arg.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_base.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_defs.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_mem.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_message.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_arch.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_mem.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_message.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/T1Part1.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/T1Part1.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_dec.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_dec_inl.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_enc.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_enc_inl.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_inl.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1_common.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1_flags.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1_generate_luts.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/t1_luts.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/RateControl.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/RateControl.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/RateInfo.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/RateInfo.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Decode.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Decode.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Encode.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Encode.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/Wavelet.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/Wavelet.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/WaveletForward.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt53.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt53.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt97.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt97.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt_utils.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt_utils.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/IBufferedStream.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/MemManager.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/MemManager.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/ThreadPool.hpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/bench_dwt.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/grok_exceptions.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/grok_intmath.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/logger.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/logger.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/mem_stream.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/mem_stream.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/simd.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/testing.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/util.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2/util/util.h
Examining data/libgrokj2k-7.6.0/src/lib/jp2_plugin/Plugin.cpp
Examining data/libgrokj2k-7.6.0/src/lib/jp2_plugin/Plugin.h

FINAL RESULTS:

data/libgrokj2k-7.6.0/src/bin/common/common.h:43:3:  [4] (format) vsnprintf:
  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.
		vsnprintf(message, message_size, format, args...);
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:747:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(destname, "%s", outfile);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:371:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(dirptr->filename[i], content->d_name);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:693:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(outformat, ".%s", of);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:869:12:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
							if (sscanf(substr2, "%dx%d:%s", &dx, &dy, substr2)
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1029: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(plugin_path, pluginPathArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1036:4:  [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(img_fol->imgdirpath, imgDirArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1044: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(out_fol->imgdirpath, outDirArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1771:4:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
			strcpy(temp_ofname, get_file_name((char*) info->output_file_name));
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1773:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(outfile, "%s%s%s.%s",
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1781:4:  [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(outfile, info->output_file_name);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:350:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(dirptr->filename[i], content->d_name);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:567:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(outformat, ".%s", of);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:646: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(out_fol->imgdirpath, outDirArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:654:4:  [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(img_fol->imgdirpath, imgDirArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:699: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(plugin_path, pluginPathArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:163:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(dirptr->filename[i], content->d_name);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:176:2:  [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(image_filename, dirptr->filename[imageno]);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:180:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(infilename, "%s/%s", img_fol->imgdirpath, image_filename);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:187:2:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
	strcpy(temp_ofname, strtok(image_filename, "."));
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:189:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat(temp_ofname, temp1);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:190:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(temp1, ".%s", temp_p);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:194:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(outfilename, "%s/%s.%s", img_fol->imgdirpath, temp_ofname,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:263:4:  [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(img_fol->imgdirpath, imgDirArg.getValue().c_str());
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:48:24:  [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.
#  define FMT_SNPRINTF snprintf
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:175:6:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
void printf(buffer<Char>& buf, basic_string_view<Char> format,
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:181:41:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
internal::truncating_iterator<OutputIt> printf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:188:17:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
using internal::printf;  // For printing into memory_buffer.
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:609:32:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
inline std::basic_string<Char> vsprintf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:613:3:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  printf(buffer, to_string_view(format), args);
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:628:32:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
inline std::basic_string<Char> sprintf(const S& format, const Args&... args) {
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:630:10:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
  return vsprintf(to_string_view(format), make_format_args<context>(args...));
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:634:12:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
inline int vfprintf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:638:3:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  printf(buffer, to_string_view(format), args);
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:656:12:  [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.
inline int fprintf(std::FILE* f, const S& format, const Args&... args) {
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:658:10:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  return vfprintf(f, to_string_view(format),
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:663:12:  [4] (format) vprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
inline int vprintf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:666:10:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  return vfprintf(stdout, to_string_view(format), args);
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:680:12:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
inline int printf(const S& format_str, const Args&... args) {
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:682:10:  [4] (format) vprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  return vprintf(to_string_view(format_str),
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:687:12:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
inline int vfprintf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:691:3:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  printf(buffer, to_string_view(format), args);
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:700:33:  [4] (format) vprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
typename ArgFormatter::iterator vprintf(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:718:12:  [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.
inline int fprintf(std::basic_ostream<Char>& os, const S& format_str,
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/printf.h:721:10:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  return vfprintf(os, to_string_view(format_str),
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1628:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(cp->comment[0], "%s%s", comment, version);
data/libgrokj2k-7.6.0/src/lib/jp2/grok_includes.h:146:9:  [4] (format) vsnprintf:
  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.
#define vsnprintf _vsnprintf
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.cpp:69:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(fullPath, dl_info.dli_fname);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.cpp:141:2:  [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(lib->path, path);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp:209:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(libraryPath, directory_path);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp:210:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat(libraryPath, MINPF_FILE_SEPARATOR);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp:211:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat(libraryPath, content->d_name);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_message.cpp:79:5:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    vfprintf(info_stream, fmt, args);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_message.cpp:117:5:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    vfprintf(warning_stream, fmt, args);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/others/ojph_message.cpp:155:5:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    vfprintf(error_stream, fmt, args);
data/libgrokj2k-7.6.0/src/lib/jp2/util/logger.cpp:36:3:  [4] (format) vsnprintf:
  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.
		vsnprintf(message, message_size, format, args...);
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:274:21:  [3] (buffer) realpath:
  This function does not protect against buffer overflows, and some
  implementations can overflow internally (CWE-120/CWE-785!). Ensure that the
  destination buffer is at least of size MAXPATHLEN, andto protect against
  implementation problems, the input argument should also be checked to
  ensure it is no larger than MAXPATHLEN.
	char *actualpath = realpath(outfile, NULL);
data/libgrokj2k-7.6.0/src/include/spdlog/cfg/env.h:30:33:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
    auto env_val = details::os::getenv("SPDLOG_LEVEL");
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:403:30:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
    const char *env_p = std::getenv("TERM");
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:534:27:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
std::string SPDLOG_INLINE getenv(const char *field)
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:547:19:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
    char *buf = ::getenv(field);
data/libgrokj2k-7.6.0/src/include/spdlog/details/os.h:103:24:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
SPDLOG_API std::string getenv(const char *field);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.cpp:117:14:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
    handle = LoadLibrary(path);
data/libgrokj2k-7.6.0/src/bin/common/color.cpp:401: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).
    FILE *icm = fopen("debug.icm","wb");
data/libgrokj2k-7.6.0/src/bin/common/color.cpp:922:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(&(image->comps[i]), &(image->comps[i + 1]),
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:79:16:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		values[it] = atoi(result);
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:151:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		*fdest = fopen(outfile, "wb");
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:192:11:  [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).
	reader = fopen(fname, "rb");
data/libgrokj2k-7.6.0/src/bin/common/common.h:41:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
		char message[message_size];
data/libgrokj2k-7.6.0/src/bin/common/convert.cpp:148:2:  [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(pDst[0], pSrc, length * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/bin/common/grok_string.h:58:2:  [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(dst, src, src_len);
data/libgrokj2k-7.6.0/src/bin/common/spdlog/fmt.cpp:57: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 format[max_format_size];
data/libgrokj2k-7.6.0/src/bin/common/windirent.h:239:5:  [2] (buffer) wchar_t:
  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.
    wchar_t d_name[PATH_MAX+1];
data/libgrokj2k-7.6.0/src/bin/common/windirent.h:279: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 d_name[PATH_MAX+1];
data/libgrokj2k-7.6.0/src/bin/common/windirent.h:695:9:  [2] (buffer) wchar_t:
  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.
        wchar_t wname[PATH_MAX + 1];
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:565:11:  [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).
		INPUT = fopen(filename, "rb");
data/libgrokj2k-7.6.0/src/bin/image_format/JPEGFormat.cpp:260:23:  [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 ((info.outfile = fopen(filename, "wb")) == nullptr) {
data/libgrokj2k-7.6.0/src/bin/image_format/JPEGFormat.cpp:432:27:  [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 ((imageInfo.infile = fopen(filename, "rb")) == nullptr) {
data/libgrokj2k-7.6.0/src/bin/image_format/JPEGFormat.cpp:516:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(imageInfo.image->icc_profile_buf, icc_data_ptr, icc_data_len);
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:79:2:  [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 signtmp[32];
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:81:2:  [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 temp[32];
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:90:6:  [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).
	f = fopen(filename, "rb");
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:221:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
		char bname[4096]; /* buffer for name */
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:241:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(bname, outfile, dotpos);
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:243:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(bname + dotpos, "_%u.pgx", compno);
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:244:11:  [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).
		fdest = fopen(bname, "wb");
data/libgrokj2k-7.6.0/src/bin/image_format/PNGFormat.cpp:114:28:  [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 ((local_info.reader = fopen(read_idf, "rb")) == nullptr) {
data/libgrokj2k-7.6.0/src/bin/image_format/PNGFormat.cpp:281:4:  [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(local_info.image->icc_profile_buf, ProfileData, ProfileLen);
data/libgrokj2k-7.6.0/src/bin/image_format/PNGFormat.cpp:323:6:  [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(local_info.image->xmp_buf, text_ptr[i].text,
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:81: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).
	*out_n = (uint32_t) atoi(start);
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:112:2:  [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 line[lineSize];
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:323:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	if ((fp = fopen(filename, "rb")) == nullptr) {
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:745:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(destname + dotpos, "_%u.pgm", compno);
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:95:7:  [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).
		f = fopen(filename, "rb");
data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.cpp:1757:4:  [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(image->icc_profile_buf, iccbuf, icclen);
data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.cpp:1770:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(image->iptc_buf, iptc_buf, iptc_len);
data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.cpp:1776:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(image->xmp_buf, xmp_buf, xmp_len);
data/libgrokj2k-7.6.0/src/bin/image_format/TIFFFormat.cpp:2036:4:  [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(new_iptf_buf, image->iptc_buf, image->iptc_len);
data/libgrokj2k-7.6.0/src/bin/image_format/iccjpeg.c:165:2:  [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 marker_present[MAX_SEQ_NO + 1]; /* 1 if marker found */
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:335:46:  [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 GRK_PROG_ORDER give_progression(const char progression[4]) {
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:691: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 outformat[50];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:819:4:  [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(substr1, rawFormatArg.getValue().c_str(), len);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:944: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 progression[4];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1304:18:  [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).
			FILE *lFile = fopen(lFilename, "r");
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1357:18:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				*int_ptr++ = atoi(lCurrentPtr);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1491: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(parameters->cp_comment[count], s.c_str(), s.length());
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1638:2:  [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 indexfilename[GRK_PATH_LEN]; /* index file name */
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1639:2:  [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 plugin_path[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1762:2:  [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 outfile[3 * GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1763:2:  [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 temp_ofname[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1920:13:  [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).
		auto fp = fopen(info->input_file_name, "rb");
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:2103:13:  [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).
		auto fp = fopen(outfile, "wb");
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:565: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 outformat[50];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:685:4:  [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(ROI_values, decodeRegionArg.getValue().c_str(), size_optarg);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:848:2:  [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(new_image->comps[0].data, original->comps[0].data,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:850:2:  [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(new_image->comps[1].data, original->comps[0].data,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:852:2:  [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(new_image->comps[2].data, original->comps[0].data,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:857:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(new_image->comps[compno + 2U].data, original->comps[compno].data,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:977:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
						memcpy(dst, dst - new_cmp->stride, new_cmp->w * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:1002:6:  [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(dst, dst - new_cmp->stride, new_cmp->w * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:1007:4:  [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(new_cmp->data, org_cmp->data, org_cmp->stride * org_cmp->h * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:1042:2:  [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 plugin_path[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:1348:14:  [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).
			auto in = fopen(infile, "r");
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:1428:14:  [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).
			auto fp = fopen(xmlFile.c_str(), "wb");
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:172:2:  [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 image_filename[GRK_PATH_LEN], infilename[3 * GRK_PATH_LEN],
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:174:2:  [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 *temp_p, temp1[GRK_PATH_LEN] = "";
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:193:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
		char outfilename[3 * GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/bin/jp2/grk_dump.cpp:413:10:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		fout = fopen(parameters.outfile, "w");
data/libgrokj2k-7.6.0/src/include/spdlog/details/file_helper-inl.h:28:33:  [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).
SPDLOG_INLINE void file_helper::open(const filename_t &fname, bool truncate)
data/libgrokj2k-7.6.0/src/include/spdlog/details/file_helper-inl.h:55: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).
    this->open(filename_, truncate);
data/libgrokj2k-7.6.0/src/include/spdlog/details/file_helper.h:25: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(const filename_t &fname, bool truncate = false);
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:145:22:  [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).
    const int fd = ::open((filename.c_str()), O_CREAT | O_WRONLY | O_CLOEXEC | mode_flag, mode_t(0644));
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:156:13:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    *fp = ::fopen((filename.c_str()), mode.c_str());
data/libgrokj2k-7.6.0/src/include/spdlog/details/os-inl.h:542: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[128];
data/libgrokj2k-7.6.0/src/include/spdlog/details/tcp_client-windows.h:54:9:  [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[512];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/core.h:1010:10:  [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(val.data, &arg, sizeof(arg));
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/core.h:1610:11:  [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.
  mutable char data[sizeof(basic_format_arg<buffer_context<Char>>)];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/core.h:1616:10:  [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(&arg, data, sizeof(basic_format_arg<Context>));
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:1129:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
  char format[max_format_size];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:1318: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[2 * block_size - 1] = {};
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:1319: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(buf, p, to_unsigned(num_chars_left));
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:252: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 data[sizeof(u)];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:259:12:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
  unsigned char value[sizeof(void*)];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:774:16:  [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 const char reset_color[5];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:775:16:  [2] (buffer) wchar_t:
  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 const wchar_t wreset_color[5];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:969:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
  char buffer[num_bits<UInt>() / BASE_BITS + 1];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:1487: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 prefix[4];
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format.h:2858:11:  [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.
  mutable char buffer_[buffer_size];
data/libgrokj2k-7.6.0/src/include/spdlog/logger-inl.h:248:9:  [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 date_buf[64];
data/libgrokj2k-7.6.0/src/include/spdlog/sinks/basic_file_sink-inl.h:19:18:  [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_helper_.open(filename, truncate);
data/libgrokj2k-7.6.0/src/include/spdlog/sinks/daily_file_sink.h:64:22:  [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_helper_.open(filename, truncate_);
data/libgrokj2k-7.6.0/src/include/spdlog/sinks/daily_file_sink.h:87:26:  [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_helper_.open(filename, truncate_);
data/libgrokj2k-7.6.0/src/include/spdlog/sinks/rotating_file_sink-inl.h:33:18:  [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_helper_.open(calc_filename(base_filename_, 0));
data/libgrokj2k-7.6.0/src/lib/jp2/TileProcessor.cpp:988:4:  [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(dest, src, tilec->width() * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/TileProcessor.cpp:1423:4:  [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(comp_dest->data + dest_ind, src_ptr + src_ind,width_dest * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/TileProcessor.cpp:1929:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(buffer + offset, buf->buf, buf->len);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:30:2:  [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 str_prog[5];
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1612:4:  [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(cp->comment[i], parameters->cp_comment[i],
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1736:4:  [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(tcp->m_mct_coding_matrix, parameters->mct_data, lMctSize);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1737:4:  [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(lTmpBuf, parameters->mct_data, lMctSize);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2524:4:  [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(tcp->m_mct_decoding_matrix,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2534:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(tcp->m_mct_records, default_tcp->m_mct_records,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2547: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(dest_mct_rec->m_data, src_mct_rec->m_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2563:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(tcp->m_mcc_records, default_tcp->m_mcc_records,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2585:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(current_tccp, default_tcp->tccps, tccp_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodingParams.h:247:2:  [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 *comment[GRK_NUM_COMMENTS_SUPPORTED];
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:230:2:  [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 tab[2];
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:262:2:  [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 tab[3];
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:325:4:  [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(tccp_info->prch, tccp->prch, tccp->numresolutions);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:326:4:  [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(tccp_info->prcw, tccp->prcw, tccp->numresolutions);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:371:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(cstr_index->marker, codeStream->cstr_index->marker,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:415: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(cstr_index->tile_index[i].marker,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Dump.cpp:448: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(cstr_index->tile_index[i].tp_index,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:643:2:  [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(current_ptr, buffer->buffer, buffer->len);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:659:2:  [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(fileFormat->xml.buffer, p_xml_data, xml_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:680:2:  [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(uuid->uuid, p_header_data, 16);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:683:2:  [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(uuid->buffer, p_header_data, uuid->len);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:1045:4:  [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(current_colr_ptr, fileFormat->color.icc_profile_buf,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:1487:4:  [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(&saved, &image->comps[cn], sizeof(grk_image_comp));
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:1488:4:  [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(&image->comps[cn], &image->comps[asoc_index],
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:1490:4:  [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(&image->comps[asoc_index], &saved, sizeof(grk_image_comp));
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:1708:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(fileFormat->color.icc_profile_buf, p_colr_header_data, icc_len);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:2107:4:  [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(fileFormat->color.icc_profile_buf, image->icc_profile_buf,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/Quantizer.cpp:77:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(dest->stepsizes, src->stepsizes, size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:104:2:  [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(markers[i_ppm].m_data, p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:179:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
				memcpy(buffer + total_data_size, data, data_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:184:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
				memcpy(buffer + total_data_size, data, N_ppm_remaining);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:205:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
						memcpy(buffer + total_data_size, data, N_ppm);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:210:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
						memcpy(buffer + total_data_size, data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:382:2:  [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(codeStream->m_cp.comment[numComments], p_header_data, commentSize);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:542:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(copied_tccp->prcw, ref_tccp->prcw, prc_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:543:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(copied_tccp->prch, ref_tccp->prch, prc_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1113:2:  [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(tcp->ppt_markers[Z_ppt].m_data, p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1149:4:  [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(p_tcp->ppt_buffer + ppt_data_size,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1626:2:  [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(mct_data->m_data, p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/grok.cpp:545:2:  [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(parameters->mct_data, pEncodingMatrix, l_matrix_size);
data/libgrokj2k-7.6.0/src/lib/jp2/grok.cpp:546:2:  [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(((uint8_t*) parameters->mct_data) + l_matrix_size, p_dc_shift,
data/libgrokj2k-7.6.0/src/lib/jp2/grok.cpp:635:12:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		p_file = fopen(fname, mode);
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:380:2:  [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 progorder[5];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:444:2:  [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 *cp_comment[GRK_NUM_COMMENTS_SUPPORTED];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:488:2:  [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 infile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:490:2:  [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 outfile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:654:2:  [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 *comment[GRK_NUM_COMMENTS_SUPPORTED];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:686:2:  [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 infile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:688:2:  [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 outfile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:734:2:  [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 infile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:736:2:  [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 outfile[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/grok.h:742:2:  [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 indexfilename[GRK_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/image.cpp:168:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(&(image_dest->comps[compno]), &(image_src->comps[compno]),
data/libgrokj2k-7.6.0/src/lib/jp2/image.cpp:178:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(image_dest->icc_profile_buf, image_src->icc_profile_buf,
data/libgrokj2k-7.6.0/src/lib/jp2/mct/invert.cpp:140:4:  [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(p_swap_area, lColumnMatrix, lSwapSize);
data/libgrokj2k-7.6.0/src/lib/jp2/mct/invert.cpp:141:4:  [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(lColumnMatrix, lTmpMatrix, lSwapSize);
data/libgrokj2k-7.6.0/src/lib/jp2/mct/invert.cpp:142:4:  [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(lTmpMatrix, p_swap_area, lSwapSize);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.h:36:2:  [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 path[MINPF_MAX_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp:153:2:  [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 fullPath[4096];
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_plugin_manager.cpp:184:2:  [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 libraryPath[MINPF_MAX_PATH_LEN];
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/T1HT.cpp:135:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	 memcpy(cblk->paddedCompressedData, next_coded->buf, (size_t)pass_length[0]);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/T1HT.cpp:156:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(actual_coded_data + offset, b->buf, b->len);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_encoder.cpp:927:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
      memcpy(coded->buf, ms.buf, ms.pos);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_encoder.cpp:928:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
      memcpy(coded->buf + ms.pos, mel.buf, mel.pos);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/coding/ojph_block_encoder.cpp:929:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
      memcpy(coded->buf + ms.pos + mel.pos, vlc.buf - vlc.pos + 1, vlc.pos);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_ht/common/ojph_arg.h:150:17:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
          val = atoi(t2.arg);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/T1Part1.cpp:155:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(t1->cblkdatabuffer + offset, b->buf, b->len);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_dec.cpp:135: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(mqc->backup, mqc->end, grk_cblk_dec_compressed_data_pad_right);
data/libgrokj2k-7.6.0/src/lib/jp2/t1/t1_part1/mqc_dec.cpp:164: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(mqc->end, mqc->backup, grk_cblk_dec_compressed_data_pad_right);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/WaveletForward.h:144:6:  [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(bj,aj,rw << 2);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/WaveletForward.h:163: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(bj,aj,rw << 2);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:188: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(dest, buf, total_width * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:226: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(dest, buf, total_width * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1232: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((float*)bi, band, nb_elts_read * sizeof(float));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1239: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((float*)bi, band, nb_elts_read * sizeof(float));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1258:4:  [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(destPtr, vert->mem+k, 4 * sizeof(float));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1271:4:  [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(destPtr, vert->mem+k,j * sizeof(float));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt53.cpp:85:2:  [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(before, a, rw_full * rh_full * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt53.cpp:92:2:  [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(after, a, rw_full * rh_full * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt53.cpp:104:2:  [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(a, after, rw_full * rh_full * sizeof(int32_t));
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:190:33:  [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(dest_ptr, src_ptr, sizeof(int32_t) * x_incr);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:196:33:  [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(dest_ptr, src_ptr, sizeof(int32_t) * x_incr);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:259:29:  [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(dest_ptr, src_ptr, sizeof(int32_t) * x_incr);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:265:29:  [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(dest_ptr, src_ptr, sizeof(int32_t) * x_incr);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:71:4:  [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(p_buffer, m_buf->curr_ptr(), p_size);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:89:4:  [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(p_buffer, m_buf->curr_ptr(), m_buffered_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:104:4:  [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(p_buffer, m_buf->curr_ptr(), m_buffered_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:139: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(p_buffer, m_buf->curr_ptr(), m_buffered_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:154: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(p_buffer, m_buf->curr_ptr(), p_size);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:242:4:  [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(m_buf->curr_ptr(), p_buffer, p_size);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:250:4:  [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(m_buf->curr_ptr(), p_buffer, remaining_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.h:224:2:  [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(p_buffer, l_data_ptr, nb_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.h:244:2:  [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(l_data_ptr + sizeof(TYPE) - nb_bytes, p_buffer, nb_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp:131: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 vendor[0x20];
data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp:165: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 brand[0x40];
data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp:184:17:  [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(brand, extdata_[2].data(), sizeof(cpui));
data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp:185:17:  [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(brand + 16, extdata_[3].data(), sizeof(cpui));
data/libgrokj2k-7.6.0/src/lib/jp2/util/CPUArch.cpp:186:17:  [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(brand + 32, extdata_[4].data(), sizeof(cpui));
data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.cpp:67:4:  [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((uint8_t*) p_buffer + total_bytes_read,
data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.cpp:198:4:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			memcpy(buffer + offset, chunk->buf, chunk->len);
data/libgrokj2k-7.6.0/src/lib/jp2/util/logger.cpp:34:3:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
		char message[message_size];
data/libgrokj2k-7.6.0/src/lib/jp2/util/mem_stream.cpp:75:4:  [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(p_buffer, p_source_buffer->buf + p_source_buffer->off,
data/libgrokj2k-7.6.0/src/lib/jp2/util/mem_stream.cpp:88:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(src->buf + (size_t) src->off, dest, nb_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/mem_stream.cpp:294:7:  [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).
	fd = open(fname, m, 0666);
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:228:6:  [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).
	if (strlen(fname) >= 4){
data/libgrokj2k-7.6.0/src/bin/common/common.cpp:229:27:  [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).
		const char *s = fname + strlen(fname) - 4;
data/libgrokj2k-7.6.0/src/bin/common/windirent.h:388:9:  [1] (buffer) wcslen:
  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).
    n = wcslen (dirname);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:72:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:403:11:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		int c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:408:15:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:419:8:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:429:9:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:433:9:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:444:17:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:452:10:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					if (getc(INPUT) == EOF)
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:475:11:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		int c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:481:15:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:492:8:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			c = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:503:16:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:509:12:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:524:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
						int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:533:10:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					if (getc(INPUT) == EOF)
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:596:16:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				int temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:600:12:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:604:12:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				temp = getc(INPUT);
data/libgrokj2k-7.6.0/src/bin/image_format/BMPFormat.cpp:608:12:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				temp = getc(INPUT); /* padding */
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:118:6:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	c = fgetc(f);
data/libgrokj2k-7.6.0/src/bin/image_format/PGXFormat.cpp:224:23:  [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).
		const size_t olen = strlen(outfile);
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:728:28:  [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).
	destname = (char*) malloc(strlen(outfile) + 8);
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:736:24:  [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).
			const size_t olen = strlen(outfile);
data/libgrokj2k-7.6.0/src/bin/image_format/PNMFormat.cpp:744:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(destname, outfile, dotpos);
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:44:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
template<typename T> static bool read(FILE *rawFile, bool big_endian,
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:155:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					rc = read<int8_t>(f, big_endian, ptr, w);
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:157:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					rc = read<uint8_t>(f, big_endian, ptr, w);
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:174:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					rc = read<int16_t>(f, big_endian, ptr, w);
data/libgrokj2k-7.6.0/src/bin/image_format/RAWFormat.cpp:176:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					rc = read<uint16_t>(f, big_endian, ptr, w);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:946:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(progression, progressionOrderArg.getValue().c_str(), 4);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:972:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
			while (sscanf(s, "T%u=%u,%u,%u,%u,%u,%4s", &POC[numpocs].tile,
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1035:6:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					strlen(imgDirArg.getValue().c_str()) + 1);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1043:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						strlen(outDirArg.getValue().c_str()) + 1);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1349:15:  [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).
				lStrLen = strlen(lCurrentPtr) + 1;
data/libgrokj2k-7.6.0/src/bin/jp2/grk_compress.cpp:1356:15:  [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).
				lStrLen = strlen(lCurrentPtr) + 1;
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:645:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						strlen(outDirArg.getValue().c_str()) + 1);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:653:6:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					strlen(imgDirArg.getValue().c_str()) + 1);
data/libgrokj2k-7.6.0/src/bin/jp2/grk_decompress.cpp:677:34:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			size_t size_optarg = (size_t) strlen(
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:92:33:  [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).
      if (message == buffer_ && strlen(buffer_) == buffer_size_ - 1)
data/libgrokj2k-7.6.0/src/include/spdlog/fmt/bundled/format-inl.h:108:29:  [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).
      return result == 0 && strlen(buffer_) == buffer_size_ - 1 ? ERANGE
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:99:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void BitIO::read(uint32_t *bits, uint32_t n) {
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:137:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&temp, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:140:3:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		read(&temp, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:159:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&n, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:164:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&n, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:169:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&n, 2);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:174:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&n, 5);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.cpp:179:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read(&n, 7);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/BitIO.h:55:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(uint32_t *bits, uint32_t n);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:685:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (stream->read(header_data, marker_size) != marker_size) {
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1620:23:  [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).
		const size_t clen = strlen(comment);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1623:50:  [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).
		cp->comment[0] = (char*) grk_buffer_new(clen + strlen(version) + 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:1629:35:  [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).
		cp->comment_len[0] = (uint16_t) strlen(cp->comment[0]);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2712: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).
	assert(strlen(prog) > 0);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:2978:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (stream->read(m_marker_scratch, marker_size)
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodeStream.cpp:3012:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (stream->read(temp, 2) != 2) {
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/CodingParams.cpp:124:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (stream->read(data, 2) != 2) {
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:448:44:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	*p_number_bytes_read = (uint32_t) stream->read(data_header, 8);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:466:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		uint32_t nb_bytes_read = (uint32_t) stream->read(data_header, 8);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/FileFormat.cpp:2429:40:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				nb_bytes_read = (uint32_t) stream->read(current_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/IBitIO.h:49:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read(uint32_t *bits, uint32_t n)= 0;
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/TagTree.cpp:248:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			bio->read(&temp, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/LengthMarkers.cpp:47:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool TileLengthMarkers::read(uint8_t *p_header_data, uint16_t header_size){
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/LengthMarkers.h:47:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(uint8_t *p_header_data, uint16_t header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.cpp:48:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool PPMMarker::read(uint8_t *p_header_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/PPMMarker.h:46:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(uint8_t *p_header_data,	uint16_t header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SIZMarker.cpp:25:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool SIZMarker::read(CodeStream *codeStream, uint8_t *p_header_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SIZMarker.h:36:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(CodeStream *codeStream, uint8_t *p_header_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SOTMarker.cpp:104:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
 bool SOTMarker::read(CodeStream *codeStream, TileProcessor *tileProcessor, uint8_t *p_header_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/SOTMarker.h:53:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	 bool read(CodeStream *codeStream, TileProcessor *tileProcessor, uint8_t *p_header_data,
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:158:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (stream->read(data, 2) != 2)
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:293:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return siz.read(codeStream, p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1024:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return codeStream->m_cp.ppm_marker->read(p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1183:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return sot.read(codeStream, tileProcessor, p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:1259:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		current_read_size = stream->read(zeroCopy ? nullptr : buff, len);
data/libgrokj2k-7.6.0/src/lib/jp2/codestream/markers/markers.cpp:2194:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return codeStream->m_cp.tlm_markers->read(p_header_data, header_size);
data/libgrokj2k-7.6.0/src/lib/jp2/plugin/minpf_dynamic_library.cpp:68: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).
	if (dladdr(addr, &dl_info) && strlen(dl_info.dli_fname) < fullPathLen) {
data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Decode.cpp:281:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		bio->read(&present, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Decode.cpp:352:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				bio->read(&included, 1);
data/libgrokj2k-7.6.0/src/lib/jp2/t2/T2Decode.cpp:455:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				bio->read(&seg->numBytesInPacket, bits_to_read);
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1435:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool ret = sa->read( win_l_x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1446:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(sn + win_h_x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1465:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool ret = sa->read(sa_col, win_l_y0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1474:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ret = sa->read( sa_col, sn + win_h_y0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1725:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        bool ret = sa->read(dwt->win_l_x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1733:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ret = sa->read(dwt->sn + dwt->win_h_x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1750:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool ret = sa->read(sa_col,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1756:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(sa_col,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:1800:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    	bool ret = sa->read(win_bounds,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/dwt.cpp:2135:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool ret = sa->read(win_bounds,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:312:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool sparse_array::read(grk_rect_u32 region,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:318:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return read(region.x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.cpp:329:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool sparse_array::read(uint32_t x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.h:108:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(uint32_t x0,
data/libgrokj2k-7.6.0/src/lib/jp2/transform/sparse_array.h:129:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(grk_rect_u32 region,
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.cpp:52:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
size_t BufferedStream::read(uint8_t *p_buffer, size_t p_size) {
data/libgrokj2k-7.6.0/src/lib/jp2/util/BufferedStream.h:95:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	size_t read(uint8_t *p_buffer, size_t p_size);
data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.cpp:42:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
size_t ChunkBuffer::read(void *p_buffer, size_t nb_bytes) {
data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.cpp:183:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		return (read(nullptr, chunk_len) == chunk_len);
data/libgrokj2k-7.6.0/src/lib/jp2/util/ChunkBuffer.h:77:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	size_t read(void *p_buffer, size_t nb_bytes);
data/libgrokj2k-7.6.0/src/lib/jp2/util/MemManager.cpp:70:11:  [1] (free) memalign:
  On some systems (though not Linux-based systems) an attempt to free()
  results from memalign() may fail. This may, on a few systems, be
  exploitable. Also note that memalign() may not check that the boundary
  parameter is correct (CWE-676). Use posix_memalign instead (defined in
  POSIX's 1003.1d). Don't switch to valloc(); it is marked as obsolete in BSD
  4.3, as legacy in SUSv2, and is no longer defined in SUSv3. In some cases,
  malloc()'s alignment may be sufficient.
    ptr = memalign( alignment, size );
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:108:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 0, 0, 1, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:110:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 0, 1, 0, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:112:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 0, 100, 1, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:114:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 0, 1, 102, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:116:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 1, 0, 0, 1, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:118:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 1, 1, 0, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:120:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 99, 101, 99, 101, buffer, 1, 1,
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:125:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(0, 0, 1, 1, buffer, 1, 1, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:130:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(0, 0, 99, 101, buffer, 1, 99, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:148:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(4, 5, 4 + 1, 5 + 1, buffer, 1, 1,
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:157:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(4, 5, 4 + 1, 5 + 2, buffer, 0, 1,
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:171:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(4, 5, 4 + 1, 5 + 1, buffer, 1, 1,
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:180:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(2, 1, 2 + w, 1 + h, buffer, 1, w,
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:198:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read( 0, 0, 2, 1, buffer, 2, 4, false);
data/libgrokj2k-7.6.0/src/lib/jp2/util/test_sparse_array.cpp:210:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret = sa->read(0, 0, 2, 1, buffer, 2, 4, false);

ANALYSIS SUMMARY:

Hits = 379
Lines analyzed = 85138 in approximately 2.43 seconds (35091 lines/second)
Physical Source Lines of Code (SLOC) = 59691
Hits@level = [0] 383 [1] 119 [2] 197 [3]   7 [4]  56 [5]   0
Hits@level+ = [0+] 762 [1+] 379 [2+] 260 [3+]  63 [4+]  56 [5+]   0
Hits/KSLOC@level+ = [0+] 12.7657 [1+] 6.34937 [2+] 4.35577 [3+] 1.05544 [4+] 0.938165 [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.