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/tinyexr-1.0.0+dfsg/examples/common/cxxopts.hpp Examining data/tinyexr-1.0.0+dfsg/examples/cube2longlat/cube2longlat.cc Examining data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/exr2fptiff.cc Examining data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h Examining data/tinyexr-1.0.0+dfsg/examples/exr2ldr/exr2ldr.cc Examining data/tinyexr-1.0.0+dfsg/examples/exr2rgbe/exr2rgbe.cc Examining data/tinyexr-1.0.0+dfsg/examples/exrfilter/exrfilter.cc Examining data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc Examining data/tinyexr-1.0.0+dfsg/examples/nornalmap/main.cc Examining data/tinyexr-1.0.0+dfsg/examples/resize/resize.cc Examining data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc Examining data/tinyexr-1.0.0+dfsg/examples/testmapgen/testmapgen.cc Examining data/tinyexr-1.0.0+dfsg/test/c-binding/test.c Examining data/tinyexr-1.0.0+dfsg/test/exrcat/exrcat.cpp Examining data/tinyexr-1.0.0+dfsg/test/exrwrite/exrwritetest.cpp Examining data/tinyexr-1.0.0+dfsg/test/fuzzer/fuzz.cc Examining data/tinyexr-1.0.0+dfsg/test/unit/tester.cc Examining data/tinyexr-1.0.0+dfsg/tinyexr.cc Examining data/tinyexr-1.0.0+dfsg/tinyexr.h Examining data/tinyexr-1.0.0+dfsg/test_tinyexr.cc FINAL RESULTS: data/tinyexr-1.0.0+dfsg/test/exrwrite/exrwritetest.cpp:102:15: [3] (random) drand48: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. rgba[i] = drand48(); data/tinyexr-1.0.0+dfsg/examples/cube2longlat/cube2longlat.cc:384: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). int output_width = atoi(argv[7]); data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h:386: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 c[4]; data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h:387: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(c, &i, 4); data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h:487: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(&(ifd.offset_or_value), &value, sizeof(unsigned char)); data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h:490: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(&(ifd.offset_or_value), &value, sizeof(unsigned short)); data/tinyexr-1.0.0+dfsg/examples/exr2fptiff/tiny_dng_writer.h:1128: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(data.data(), data_os_.str().data(), data.size()); data/tinyexr-1.0.0+dfsg/examples/resize/resize.cc:18:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int dst_width = atoi(argv[3]); data/tinyexr-1.0.0+dfsg/examples/resize/resize.cc:19:20: [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 dst_height = atoi(argv[4]); data/tinyexr-1.0.0+dfsg/examples/testmapgen/testmapgen.cc:74:25: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). width = std::min(1, atoi(argv[2])); data/tinyexr-1.0.0+dfsg/examples/testmapgen/testmapgen.cc:78:26: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). height = std::min(1, atoi(argv[3])); data/tinyexr-1.0.0+dfsg/test/exrcat/exrcat.cpp:20: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). FILE* fp = fopen(filename, "wb"); data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:105: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 filename[1024]; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:128: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 filename[1024]; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:519: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 buf[1024]; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:521:5: [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(buf, "Beachball/multipart.%04d.exr", i); data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:568: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 buf[1024]; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:570:5: [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(buf, "Beachball/singlepart.%04d.exr", i); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:40: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). FILE* fp = fopen(filename, "wb"); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:181: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.data(), wargv[i], slen); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:411:5: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(exr_header.custom_attributes[0].name, "tinyexr_version_minor"); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:413:5: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(exr_header.custom_attributes[0].type, "int"); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:417: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(exr_header.custom_attributes[0].value, &version_minor, sizeof(int)); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:436:5: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(exr_header.custom_attributes[0].name, "zfpCompressionType"); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:443:5: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(exr_header.custom_attributes[1].name, "zfpCompressionRate"); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc: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(exr_header.custom_attributes[1].value, &zfp_compression_rate, data/tinyexr-1.0.0+dfsg/tinyexr.h:172: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 name[256]; // name and type are up to 255 chars long. data/tinyexr-1.0.0+dfsg/tinyexr.h:173: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 type[256]; data/tinyexr-1.0.0+dfsg/tinyexr.h:180: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 name[256]; // less than 255 bytes long data/tinyexr-1.0.0+dfsg/tinyexr.h:185: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 pad[3]; data/tinyexr-1.0.0+dfsg/tinyexr.h:1373: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 m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE]; data/tinyexr-1.0.0+dfsg/tinyexr.h:1374: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 m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE]; data/tinyexr-1.0.0+dfsg/tinyexr.h:1979:18: [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. typedef unsigned char mz_validate_uint16[sizeof(mz_uint16) == 2 ? 1 : -1]; data/tinyexr-1.0.0+dfsg/tinyexr.h:1980:18: [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. typedef unsigned char mz_validate_uint32[sizeof(mz_uint32) == 4 ? 1 : -1]; data/tinyexr-1.0.0+dfsg/tinyexr.h:1981:18: [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. typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1]; data/tinyexr-1.0.0+dfsg/tinyexr.h:2348: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(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:2377: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(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:2474:31: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. #define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) data/tinyexr-1.0.0+dfsg/tinyexr.h:3474: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(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); data/tinyexr-1.0.0+dfsg/tinyexr.h:3475: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(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], data/tinyexr-1.0.0+dfsg/tinyexr.h:3821: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((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, data/tinyexr-1.0.0+dfsg/tinyexr.h:3958: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(d->m_dict + dst_pos, d->m_pSrc, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:3960: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(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, data/tinyexr-1.0.0+dfsg/tinyexr.h:4310: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((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, data/tinyexr-1.0.0+dfsg/tinyexr.h:4476: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((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len); data/tinyexr-1.0.0+dfsg/tinyexr.h:4647: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(out_buf.m_pBuf, pnghdr, 41); data/tinyexr-1.0.0+dfsg/tinyexr.h:4717:24: [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). #define MZ_FOPEN(f, m) fopen(f, m) data/tinyexr-1.0.0+dfsg/tinyexr.h:4733:24: [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). #define MZ_FOPEN(f, m) fopen(f, m) data/tinyexr-1.0.0+dfsg/tinyexr.h:4765:24: [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). #define MZ_FOPEN(f, m) fopen(f, m) data/tinyexr-1.0.0+dfsg/tinyexr.h:4916: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((mz_uint8 *)pArray->m_p + orig_size * pArray->m_element_size, data/tinyexr-1.0.0+dfsg/tinyexr.h:5242: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(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); data/tinyexr-1.0.0+dfsg/tinyexr.h:5381: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(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:5387: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(pStat->m_comment, data/tinyexr-1.0.0+dfsg/tinyexr.h:5408: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(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:6056: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((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n); data/tinyexr-1.0.0+dfsg/tinyexr.h:6104: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[4096]; data/tinyexr-1.0.0+dfsg/tinyexr.h:6310: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 buf[4096]; data/tinyexr-1.0.0+dfsg/tinyexr.h:6804: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(central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); data/tinyexr-1.0.0+dfsg/tinyexr.h:7414: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(&data_len, marker, sizeof(uint32_t)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7443: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(&data->at(0), marker, static_cast<size_t>(data_len)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7468: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 pad[3]; data/tinyexr-1.0.0+dfsg/tinyexr.h:7560: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(&info.pixel_type, p, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7564: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(&info.x_sampling, p, sizeof(int)); // int data/tinyexr-1.0.0+dfsg/tinyexr.h:7566: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(&info.y_sampling, p, sizeof(int)); // int data/tinyexr-1.0.0+dfsg/tinyexr.h:7593: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, channels[c].name.c_str(), strlen(channels[c].name.c_str())); data/tinyexr-1.0.0+dfsg/tinyexr.h:7605: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, &pixel_type, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7611: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, &x_sampling, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7614: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, &y_sampling, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:7698: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(dst, src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:7707: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(dst, src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:7861: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(out, in, count); data/tinyexr-1.0.0+dfsg/tinyexr.h:7949: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(dst, src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:7958: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(dst, src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:8650: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(frq, scode.data(), sizeof(long long) * HUF_ENCSIZE); data/tinyexr-1.0.0+dfsg/tinyexr.h:9171:23: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static void writeUInt(char buf[4], unsigned int i) { data/tinyexr-1.0.0+dfsg/tinyexr.h:9180:36: [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 unsigned int readUInt(const char buf[4]) { data/tinyexr-1.0.0+dfsg/tinyexr.h:9288:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char bitmap[BITMAP_SIZE], data/tinyexr-1.0.0+dfsg/tinyexr.h:9310:20: [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. const unsigned char bitmap[BITMAP_SIZE], unsigned short lut[USHORT_RANGE]) { data/tinyexr-1.0.0+dfsg/tinyexr.h:9324:20: [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. const unsigned char bitmap[BITMAP_SIZE], unsigned short lut[USHORT_RANGE]) { data/tinyexr-1.0.0+dfsg/tinyexr.h:9400: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(cd.end, ptr, n * sizeof(unsigned short)); data/tinyexr-1.0.0+dfsg/tinyexr.h:9419: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(buf, &minNonZero, sizeof(unsigned short)); data/tinyexr-1.0.0+dfsg/tinyexr.h:9421: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(buf, &maxNonZero, sizeof(unsigned short)); data/tinyexr-1.0.0+dfsg/tinyexr.h:9425: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, reinterpret_cast<char *>(&bitmap[0] + minNonZero), data/tinyexr-1.0.0+dfsg/tinyexr.h:9451: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(buf, &zero, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:9456: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(lengthPtr, &length, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:9466: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(outPtr, inPtr, inSize); data/tinyexr-1.0.0+dfsg/tinyexr.h:9477: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(outPtr, inPtr, inLen); data/tinyexr-1.0.0+dfsg/tinyexr.h:9505: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(reinterpret_cast<char *>(&bitmap[0] + minNonZero), ptr, data/tinyexr-1.0.0+dfsg/tinyexr.h:9580: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(outPtr, cd.end, static_cast<size_t>(n * sizeof(unsigned short))); data/tinyexr-1.0.0+dfsg/tinyexr.h:9693: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(dst, src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:9726: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(&buf.at(0), src, src_size); data/tinyexr-1.0.0+dfsg/tinyexr.h:10560:7: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). MultiByteToWideChar(CP_UTF8, 0, str.data(), (int)str.size(), NULL, 0); data/tinyexr-1.0.0+dfsg/tinyexr.h:10562:3: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). MultiByteToWideChar(CP_UTF8, 0, str.data(), (int)str.size(), &wstr[0], data/tinyexr-1.0.0+dfsg/tinyexr.h:10659: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(&x_size, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10660: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(&y_size, &data.at(4), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10744: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(&info->data_window.min_x, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10745: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(&info->data_window.min_y, &data.at(4), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10746: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(&info->data_window.max_x, &data.at(8), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10747: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(&info->data_window.max_y, &data.at(12), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10756: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(&info->display_window.min_x, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10757: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(&info->display_window.min_y, &data.at(4), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10758: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(&info->display_window.max_x, &data.at(8), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10759: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(&info->display_window.max_y, &data.at(12), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10774: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(&info->pixel_aspect_ratio, &data.at(0), sizeof(float)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10780: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(&info->screen_window_center[0], &data.at(0), sizeof(float)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10781: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(&info->screen_window_center[1], &data.at(4), sizeof(float)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10788: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(&info->screen_window_width, &data.at(0), sizeof(float)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10795: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(&info->chunk_count, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:10813: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(reinterpret_cast<char *>(attrib.value), &data.at(0), data/tinyexr-1.0.0+dfsg/tinyexr.h:10943: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(exr_header->custom_attributes[i].name, info.attributes[i].name, data/tinyexr-1.0.0+dfsg/tinyexr.h:10945: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(exr_header->custom_attributes[i].type, info.attributes[i].type, data/tinyexr-1.0.0+dfsg/tinyexr.h:11096:11: [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(tile_coordinates, data_ptr, sizeof(int) * 4); data/tinyexr-1.0.0+dfsg/tinyexr.h:11113:11: [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(&data_len, data_ptr + 16, data/tinyexr-1.0.0+dfsg/tinyexr.h:11233:13: [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(&line_no, data_ptr, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:11235:13: [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(&data_len, data_ptr + 4, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:11352: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(&y, marker, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:11353: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(&data_len, marker + 4, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:11468: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(&offset, marker, sizeof(tinyexr::tinyexr_uint64)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12124:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12127:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12532: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(&header.at(0), &start_y, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12533: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(&header.at(4), &data_len, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12562: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(&header.at(0), &start_y, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12563: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(&header.at(4), &data_len, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12587: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(&header.at(0), &start_y, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12588: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(&header.at(4), &data_len, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12615: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(&header.at(0), &start_y, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12616: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(&header.at(4), &data_len, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12642: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(&header.at(0), &start_y, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12643: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(&header.at(4), &data_len, sizeof(unsigned int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12680: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((*memory_out), &memory.at(0), memory.size()); data/tinyexr-1.0.0+dfsg/tinyexr.h:12684: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(memory_ptr, &data_list[i].at(0), data_list[i].size()); data/tinyexr-1.0.0+dfsg/tinyexr.h:12727:8: [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, "wb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12730:8: [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, "wb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12778:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12786: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). FILE *fp = fopen(filename, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:12910: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(&dx, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12911: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(&dy, &data.at(4), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12912: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(&dw, &data.at(8), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12913: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(&dh, &data.at(12), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12924: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(&x, &data.at(0), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12925: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(&y, &data.at(4), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12926: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(&w, &data.at(8), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12927: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(&h, &data.at(12), sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:12957: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(&offset, marker, sizeof(tinyexr::tinyexr_int64)); data/tinyexr-1.0.0+dfsg/tinyexr.h:13011: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(&line_no, data_ptr, sizeof(int)); data/tinyexr-1.0.0+dfsg/tinyexr.h:13012: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(&packedOffsetTableSize, data_ptr + 4, data/tinyexr-1.0.0+dfsg/tinyexr.h:13014: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(&packedSampleDataSize, data_ptr + 12, data/tinyexr-1.0.0+dfsg/tinyexr.h:13016: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(&unpackedSampleDataSize, data_ptr + 20, data/tinyexr-1.0.0+dfsg/tinyexr.h:13265:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13268:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13395:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13398:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13500:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13503:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13519: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 buf[tinyexr::kEXRVersionSize]; data/tinyexr-1.0.0+dfsg/tinyexr.h:13577: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(&offset, marker, 8); data/tinyexr-1.0.0+dfsg/tinyexr.h:13603: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(&part_no, part_number_addr, sizeof(unsigned int)); // 4 data/tinyexr-1.0.0+dfsg/tinyexr.h:13648:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13651:8: [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, "rb"); data/tinyexr-1.0.0+dfsg/tinyexr.h:13708: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(images[0].data(), data, sizeof(float) * size_t(width * height)); data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:59:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "B", 255); header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:59:71: [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). strncpy(header.channels[0].name, "B", 255); header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:60:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[1].name, "G", 255); header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:60:71: [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). strncpy(header.channels[1].name, "G", 255); header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:61:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[2].name, "R", 255); header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/ldr2exr/ldr2exr.cc:61:71: [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). strncpy(header.channels[2].name, "R", 255); header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:55:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "B", 255); header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:55:71: [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). strncpy(header.channels[0].name, "B", 255); header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:56:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[1].name, "G", 255); header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:56:71: [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). strncpy(header.channels[1].name, "G", 255); header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:57:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[2].name, "R", 255); header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/examples/rgbe2exr/rgbe2exr.cc:57:71: [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). strncpy(header.channels[2].name, "R", 255); header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:718:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "B", 255); data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:719: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). header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:720:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[1].name, "G", 255); data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:721: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). header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:722:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[2].name, "R", 255); data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:723: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). header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:955:5: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(reinterpret_cast<char*>(&data.at(0)), data/tinyexr-1.0.0+dfsg/test/unit/tester.cc:992:5: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). f.read(reinterpret_cast<char*>(&data.at(0)), data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:179:19: [1] (buffer) _tcslen: 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 slen = _tcslen(wargv[i]); data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:412:42: [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). exr_header.custom_attributes[0].name[strlen("tinyexr_version_minor")] = '\0'; data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:414:42: [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). exr_header.custom_attributes[0].type[strlen("int")] = '\0'; data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:437:42: [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). exr_header.custom_attributes[0].name[strlen("zfpCompressionType")] = '\0'; data/tinyexr-1.0.0+dfsg/test_tinyexr.cc:444:42: [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). exr_header.custom_attributes[1].name[strlen("zfpCompressionRate")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:5454:41: [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 mz_uint filename_len = (mz_uint)strlen(pFilename); data/tinyexr-1.0.0+dfsg/tinyexr.h:5481:14: [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). name_len = strlen(pName); data/tinyexr-1.0.0+dfsg/tinyexr.h:5483: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). comment_len = pComment ? strlen(pComment) : 0; data/tinyexr-1.0.0+dfsg/tinyexr.h:6365: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). archive_name_size = strlen(pArchive_name); data/tinyexr-1.0.0+dfsg/tinyexr.h:6518: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). archive_name_size = strlen(pArchive_name); data/tinyexr-1.0.0+dfsg/tinyexr.h:7452:40: [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). out->insert(out->end(), name, name + strlen(name) + 1); data/tinyexr-1.0.0+dfsg/tinyexr.h:7453:40: [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). out->insert(out->end(), type, type + strlen(type) + 1); data/tinyexr-1.0.0+dfsg/tinyexr.h:7585:11: [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). sz += strlen(channels[c].name.c_str()) + 1; // +1 for \0 data/tinyexr-1.0.0+dfsg/tinyexr.h:7593:41: [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). memcpy(p, channels[c].name.c_str(), strlen(channels[c].name.c_str())); data/tinyexr-1.0.0+dfsg/tinyexr.h:7594:10: [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). p += strlen(channels[c].name.c_str()); data/tinyexr-1.0.0+dfsg/tinyexr.h:10806:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(attrib.name, attr_name.c_str(), 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:10807:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(attrib.type, attr_type.c_str(), 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:10906:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(exr_header->channels[c].name, info.channels[c].name.c_str(), 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13755:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "A", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13756:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[1].name, "B", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13757:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[2].name, "G", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13758:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[3].name, "R", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13760: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). header.channels[0].name[strlen("A")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13761: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). header.channels[1].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13762: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). header.channels[2].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13763: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). header.channels[3].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13770:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "B", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13771:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[1].name, "G", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13772:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[2].name, "R", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13774: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). header.channels[0].name[strlen("B")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13775: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). header.channels[1].name[strlen("G")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13776: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). header.channels[2].name[strlen("R")] = '\0'; data/tinyexr-1.0.0+dfsg/tinyexr.h:13781:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant character. strncpy(header.channels[0].name, "A", 255); data/tinyexr-1.0.0+dfsg/tinyexr.h:13783: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). header.channels[0].name[strlen("A")] = '\0'; ANALYSIS SUMMARY: Hits = 215 Lines analyzed = 20597 in approximately 0.50 seconds (41586 lines/second) Physical Source Lines of Code (SLOC) = 15338 Hits@level = [0] 131 [1] 54 [2] 160 [3] 1 [4] 0 [5] 0 Hits@level+ = [0+] 346 [1+] 215 [2+] 161 [3+] 1 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 22.5584 [1+] 14.0175 [2+] 10.4968 [3+] 0.0651975 [4+] 0 [5+] 0 Dot directories skipped = 2 (--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.