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/libbson-xs-perl-0.8.4/bson/b64_ntop.h Examining data/libbson-xs-perl-0.8.4/bson/bson-context.c Examining data/libbson-xs-perl-0.8.4/bson/bson-oid.c Examining data/libbson-xs-perl-0.8.4/bson/bson.h Examining data/libbson-xs-perl-0.8.4/bson/bson-error.c Examining data/libbson-xs-perl-0.8.4/bson/bson-atomic.c Examining data/libbson-xs-perl-0.8.4/bson/bson-string.c Examining data/libbson-xs-perl-0.8.4/bson/bson-keys.c Examining data/libbson-xs-perl-0.8.4/bson/bson-timegm-private.h Examining data/libbson-xs-perl-0.8.4/bson/bson-iter.c Examining data/libbson-xs-perl-0.8.4/bson/bson-iso8601.c Examining data/libbson-xs-perl-0.8.4/bson/bson-endian.h Examining data/libbson-xs-perl-0.8.4/bson/bson-decimal128.h Examining data/libbson-xs-perl-0.8.4/bson/bson-md5.c Examining data/libbson-xs-perl-0.8.4/bson/bson-memory.c Examining data/libbson-xs-perl-0.8.4/bson/bson-writer.c Examining data/libbson-xs-perl-0.8.4/bson/bson-iso8601-private.h Examining data/libbson-xs-perl-0.8.4/bson/bson-clock.h Examining data/libbson-xs-perl-0.8.4/bson/bson-value.c Examining data/libbson-xs-perl-0.8.4/bson/bson-reader.h Examining data/libbson-xs-perl-0.8.4/bson/bson-version.c Examining data/libbson-xs-perl-0.8.4/bson/bson-utf8.h Examining data/libbson-xs-perl-0.8.4/bson/bson-string.h Examining data/libbson-xs-perl-0.8.4/bson/bson-atomic.h Examining data/libbson-xs-perl-0.8.4/bson/bson-keys.h Examining data/libbson-xs-perl-0.8.4/bson/bson.c Examining data/libbson-xs-perl-0.8.4/bson/bson-error.h Examining data/libbson-xs-perl-0.8.4/bson/bson-oid.h Examining data/libbson-xs-perl-0.8.4/bson/bson-stdint.h Examining data/libbson-xs-perl-0.8.4/bson/bson-context.h Examining data/libbson-xs-perl-0.8.4/bson/bson-private.h Examining data/libbson-xs-perl-0.8.4/bson/bson-context-private.h Examining data/libbson-xs-perl-0.8.4/bson/bson-types.h Examining data/libbson-xs-perl-0.8.4/bson/bson-stdint-win32.h Examining data/libbson-xs-perl-0.8.4/bson/bson-iter.h Examining data/libbson-xs-perl-0.8.4/bson/bson-thread-private.h Examining data/libbson-xs-perl-0.8.4/bson/bson-writer.h Examining data/libbson-xs-perl-0.8.4/bson/bson-memory.h Examining data/libbson-xs-perl-0.8.4/bson/b64_pton.h Examining data/libbson-xs-perl-0.8.4/bson/bson-compat.h Examining data/libbson-xs-perl-0.8.4/bson/bson-decimal128.c Examining data/libbson-xs-perl-0.8.4/bson/bson-macros.h Examining data/libbson-xs-perl-0.8.4/bson/bson-md5.h Examining data/libbson-xs-perl-0.8.4/bson/bson-timegm.c Examining data/libbson-xs-perl-0.8.4/bson/bson-version.h Examining data/libbson-xs-perl-0.8.4/bson/bson-utf8.c Examining data/libbson-xs-perl-0.8.4/bson/bson-reader.c Examining data/libbson-xs-perl-0.8.4/bson/bson-clock.c Examining data/libbson-xs-perl-0.8.4/bson/bson-value.h Examining data/libbson-xs-perl-0.8.4/ppport.h Examining data/libbson-xs-perl-0.8.4/pstdint.h FINAL RESULTS: data/libbson-xs-perl-0.8.4/bson/bson-decimal128.c:543:17: [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. # define SSCANF sscanf data/libbson-xs-perl-0.8.4/bson/bson-macros.h:194:57: [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. # define BSON_GNUC_PRINTF(f, v) __attribute__((format (printf, f, v))) data/libbson-xs-perl-0.8.4/bson/bson-string.c:620:8: [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. r = vsnprintf (str, size, format, ap); data/libbson-xs-perl-0.8.4/ppport.h:7585:14: [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. retval = vsnprintf(buffer, len, format, ap); data/libbson-xs-perl-0.8.4/ppport.h:7587:14: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. retval = vsprintf(buffer, format, ap); data/libbson-xs-perl-0.8.4/ppport.h:7617:5: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. vsprintf(buffer, pat, args); data/libbson-xs-perl-0.8.4/bson/bson-context.c:351:4: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand(real_seed); data/libbson-xs-perl-0.8.4/bson/bson-thread-private.h:56:43: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. # define bson_mutex_init InitializeCriticalSection data/libbson-xs-perl-0.8.4/bson/bson-thread-private.h:57:43: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. # define bson_mutex_lock EnterCriticalSection data/libbson-xs-perl-0.8.4/bson/bson-context.c:82: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 hostname[HOST_NAME_MAX]; data/libbson-xs-perl-0.8.4/bson/bson-context.c:231: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 (&oid->bytes[9], ((uint8_t *)&seq) + 1, 3); data/libbson-xs-perl-0.8.4/bson/bson-context.c:258: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 (&oid->bytes[9], ((uint8_t *)&seq) + 1, 3); data/libbson-xs-perl-0.8.4/bson/bson-context.c:288: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 (&oid->bytes[4], &seq, sizeof (seq)); data/libbson-xs-perl-0.8.4/bson/bson-context.c:315: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 (&oid->bytes[4], &seq, sizeof (seq)); data/libbson-xs-perl-0.8.4/bson/bson-context.c:386: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 (&context->pidbe[0], &pid, 2); data/libbson-xs-perl-0.8.4/bson/bson-decimal128.c:134: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 significand_str[35]; /* decoded significand digits */ data/libbson-xs-perl-0.8.4/bson/bson-decimal128.c:175:10: [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 (str_out, "Inf"); data/libbson-xs-perl-0.8.4/bson/bson-decimal128.c:179:10: [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 (str, "NaN"); data/libbson-xs-perl-0.8.4/bson/bson-endian.h:222: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(&uv, &v, sizeof(v)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:573: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 (&val, iter->raw + iter->d1, 1); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:815: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. memcpy (binary_len, (iter->raw + iter->d1), sizeof (*binary_len)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:1219: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 (ret, str, local_length); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:1388: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. memcpy (collection_len, (iter->raw + iter->d1), sizeof (*collection_len)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:1653: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 (document_len, (iter->raw + iter->d1), sizeof (*document_len)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:1715: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 (array_len, (iter->raw + iter->d1), sizeof (*array_len)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2072: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 ((void *)(iter->raw + iter->d1), &value, 1); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2104: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 ((void *)(iter->raw + iter->d1), &value, sizeof (value)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2136: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 ((void *)(iter->raw + iter->d1), &value, sizeof (value)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2166: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 ((void *)(iter->raw + iter->d1), &value, sizeof (value)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2198: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 ((void *)(iter->raw + iter->d1), data, sizeof (data)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2200: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 ((void *)(iter->raw + iter->d1), value, sizeof (*value)); data/libbson-xs-perl-0.8.4/bson/bson-iter.h:454: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 (&val, iter->raw + iter->d1, 1); data/libbson-xs-perl-0.8.4/bson/bson-md5.c:365: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(pms->buf + offset, p, copy); data/libbson-xs-perl-0.8.4/bson/bson-md5.c:379: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(pms->buf, p, left); data/libbson-xs-perl-0.8.4/bson/bson-oid.c:129: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 (&oid->bytes[0], &now, sizeof (now)); data/libbson-xs-perl-0.8.4/bson/bson-oid.c:170: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 (&oid->bytes[0], &now, sizeof (now)); data/libbson-xs-perl-0.8.4/bson/bson-oid.c:208: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 (oid, data, 12); data/libbson-xs-perl-0.8.4/bson/bson-oid.c:294: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 str[BSON_ENSURE_ARRAY_PARAM_SIZE(25)]) /* OUT */ data/libbson-xs-perl-0.8.4/bson/bson-oid.h:57:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char str[25]); data/libbson-xs-perl-0.8.4/bson/bson-oid.h: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 (dst, src, sizeof *src); data/libbson-xs-perl-0.8.4/bson/bson-reader.c:476: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 (&blen, &reader->data[reader->offset], sizeof blen); data/libbson-xs-perl-0.8.4/bson/bson-reader.c:579: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 (&blen, &reader->data[reader->offset], sizeof blen); data/libbson-xs-perl-0.8.4/bson/bson-reader.c:790: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 errmsg_buf[BSON_ERROR_BUFFER_SIZE]; data/libbson-xs-perl-0.8.4/bson/bson-reader.c:801:9: [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 (path, O_RDONLY); data/libbson-xs-perl-0.8.4/bson/bson-string.c:74: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 (ret->str, str, ret->len); data/libbson-xs-perl-0.8.4/bson/bson-string.c:159: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 (string->str + string->len, str, len); data/libbson-xs-perl-0.8.4/bson/bson-string.c:188: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 cc[2]; data/libbson-xs-perl-0.8.4/bson/bson-string.c:225: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 str [8]; data/libbson-xs-perl-0.8.4/bson/bson-string.c:353: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 (out, str, len + 1); data/libbson-xs-perl-0.8.4/bson/bson-string.c:467: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 (ret, str, n_bytes); data/libbson-xs-perl-0.8.4/bson/bson-timegm.c:212: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. unsigned char types[TZ_MAX_TIMES]; data/libbson-xs-perl-0.8.4/bson/bson-timegm.c:214: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 chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, sizeof gmt), data/libbson-xs-perl-0.8.4/bson/bson-types.h:522: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 message[BSON_ERROR_BUFFER_SIZE]; data/libbson-xs-perl-0.8.4/bson/bson-utf8.c:435:7: [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 utf8[BSON_ENSURE_ARRAY_PARAM_SIZE(6)], /* OUT */ data/libbson-xs-perl-0.8.4/bson/bson-utf8.h:42:44: [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 utf8[6], data/libbson-xs-perl-0.8.4/bson/bson-value.c:40: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->value.v_utf8.str, data/libbson-xs-perl-0.8.4/bson/bson-value.c:49: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->value.v_doc.data, data/libbson-xs-perl-0.8.4/bson/bson-value.c:57: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->value.v_binary.data, data/libbson-xs-perl-0.8.4/bson/bson-value.c:77: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->value.v_dbpointer.collection, data/libbson-xs-perl-0.8.4/bson/bson-value.c:86: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->value.v_code.code, data/libbson-xs-perl-0.8.4/bson/bson-value.c:94: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->value.v_symbol.symbol, data/libbson-xs-perl-0.8.4/bson/bson-value.c:102: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->value.v_codewscope.code, data/libbson-xs-perl-0.8.4/bson/bson-value.c:108: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->value.v_codewscope.scope_data, data/libbson-xs-perl-0.8.4/bson/bson.c:122: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 (data, impl->data, impl->len); data/libbson-xs-perl-0.8.4/bson/bson.c:266: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 (_bson_data (bson), &bson->len, sizeof (bson->len)); data/libbson-xs-perl-0.8.4/bson/bson.c:269: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 (_bson_data (bson), &length_le, sizeof (length_le)); data/libbson-xs-perl-0.8.4/bson/bson.c:326: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 (buf, data, data_len); data/libbson-xs-perl-0.8.4/bson/bson.c:1980: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 (_bson_data (bson), data, length); data/libbson-xs-perl-0.8.4/bson/bson.c:2013: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 (*buf, &len_le, sizeof (len_le)); data/libbson-xs-perl-0.8.4/bson/bson.c:2065: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, src, sizeof *dst); data/libbson-xs-perl-0.8.4/bson/bson.c:2085: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 (adst->alloc, data, src->len); data/libbson-xs-perl-0.8.4/bson/bson.c:2212: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_inline->data, src_inline->data, sizeof src_inline->data); data/libbson-xs-perl-0.8.4/bson/bson.c:2217: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, src, sizeof (bson_t)); data/libbson-xs-perl-0.8.4/bson/bson.c:2262: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 (ret, inl->data, bson->len); data/libbson-xs-perl-0.8.4/bson/bson.c:2420: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 decimal128_string[BSON_DECIMAL128_STRING]; data/libbson-xs-perl-0.8.4/bson/bson.c:2486: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 str[25]; data/libbson-xs-perl-0.8.4/bson/bson.c:2601: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 str[25]; data/libbson-xs-perl-0.8.4/ppport.h:3920:42: [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 CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) data/libbson-xs-perl-0.8.4/ppport.h:7438:38: [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. && (xdigit = strchr((char *) PL_hexdigit, s[1]))) data/libbson-xs-perl-0.8.4/ppport.h:7664: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(dst + used, src, copy); data/libbson-xs-perl-0.8.4/ppport.h:7694: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(dst, src, copy); data/libbson-xs-perl-0.8.4/ppport.h:7787: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 octbuf[32] = "%123456789ABCDF"; data/libbson-xs-perl-0.8.4/ppport.h:7857: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 tmp[2]; data/libbson-xs-perl-0.8.4/pstdint.h:765: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 str0[256], str1[256]; data/libbson-xs-perl-0.8.4/pstdint.h:767:2: [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 (str0, "%d %x\n", 0, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:769:2: [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 (str1, "%d %x\n", i8, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:771:2: [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 (str1, "%u %x\n", u8, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:773:2: [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 (str1, "%d %x\n", i16, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:775:2: [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 (str1, "%u %x\n", u16, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:777:2: [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 (str1, "%" PRINTF_INT32_MODIFIER "d %x\n", i32, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:779:2: [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 (str1, "%" PRINTF_INT32_MODIFIER "u %x\n", u32, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:782:2: [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 (str1, "%" PRINTF_INT64_MODIFIER "d %x\n", i64, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:785:2: [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 (str1, "%" PRINTF_INTMAX_MODIFIER "d %x\n", imax, ~0); data/libbson-xs-perl-0.8.4/pstdint.h:787:2: [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 (str1, "%" PRINTF_INTMAX_MODIFIER "u %x\n", umax, ~0); data/libbson-xs-perl-0.8.4/bson/bson-context.c:91:64: [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). bson_md5_append (&md5, (const uint8_t *)hostname, (uint32_t)strlen (hostname)); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:208:21: [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). keylen = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:325:16: [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). sublen = strlen (dotkey); data/libbson-xs-perl-0.8.4/bson/bson-iter.c:1796:45: [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 (*key && !bson_utf8_validate (key, strlen (key), false)) { data/libbson-xs-perl-0.8.4/bson/bson-iter.c:2033:38: [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). bson_utf8_validate (key, strlen (key), false)) { data/libbson-xs-perl-0.8.4/bson/bson-reader.c:265:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ret = read (fd->fd, buf, len); data/libbson-xs-perl-0.8.4/bson/bson-string.c:62:26: [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). ret->len = str ? (int)strlen (str) : 0; data/libbson-xs-perl-0.8.4/bson/bson-string.c:149:20: [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). len = (uint32_t)strlen (str); data/libbson-xs-perl-0.8.4/bson/bson-string.c:346:16: [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). len = (long)strlen (str); data/libbson-xs-perl-0.8.4/bson/bson-string.c:567:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (dst, src, size); data/libbson-xs-perl-0.8.4/bson/bson-utf8.c:278:18: [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). utf8_len = strlen (utf8); data/libbson-xs-perl-0.8.4/bson/bson.c:443:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:724:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:795:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:858:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:907:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:910:18: [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). length = (int)strlen (javascript) + 1; data/libbson-xs-perl-0.8.4/bson/bson.c:958:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1014:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1017:18: [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). length = (int)strlen (collection) + 1; data/libbson-xs-perl-0.8.4/bson/bson.c:1066:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1090:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1119:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1146:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1174:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1380:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1402:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1424:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1448:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1475:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1486:21: [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). regex_len = (int)strlen (regex) + 1; data/libbson-xs-perl-0.8.4/bson/bson.c:1487: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). options_len = (int)strlen (options) + 1; data/libbson-xs-perl-0.8.4/bson/bson.c:1517:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1521:21: [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). length = (int)strlen (value); data/libbson-xs-perl-0.8.4/bson/bson.c:1555:25: [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). key_length = (int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1559:20: [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). length =(int)strlen (value); data/libbson-xs-perl-0.8.4/bson/bson.c:1608: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). key_length =(int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1649: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). key_length =(int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.c:1692: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). key_length =(int)strlen (key); data/libbson-xs-perl-0.8.4/bson/bson.h:100:39: [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). bson_append_array (b, key, (int)strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:103:45: [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). bson_append_array_begin (b, key, (int)strlen (key), child) data/libbson-xs-perl-0.8.4/bson/bson.h:106: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). bson_append_binary (b, key, (int) strlen (key), subtype, val, len) data/libbson-xs-perl-0.8.4/bson/bson.h:109:39: [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). bson_append_bool (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:112:39: [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). bson_append_code (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:115: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). bson_append_code_with_scope (b, key, (int) strlen (key), val, (int) strlen (val), scope) data/libbson-xs-perl-0.8.4/bson/bson.h:115:75: [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). bson_append_code_with_scope (b, key, (int) strlen (key), val, (int) strlen (val), scope) data/libbson-xs-perl-0.8.4/bson/bson.h:118:44: [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). bson_append_dbpointer (b, key, (int) strlen (key), coll, oid) data/libbson-xs-perl-0.8.4/bson/bson.h:121:48: [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). bson_append_document_begin (b, key, (int)strlen (key), child) data/libbson-xs-perl-0.8.4/bson/bson.h:124: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). bson_append_double (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:127:43: [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). bson_append_document (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:130: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). bson_append_int32 (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:133: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). bson_append_int64 (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:136: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). bson_append_minkey (b, key, (int) strlen (key)) data/libbson-xs-perl-0.8.4/bson/bson.h:139: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). bson_append_decimal128 (b, key, (int)strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:142: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). bson_append_maxkey (b, key, (int) strlen (key)) data/libbson-xs-perl-0.8.4/bson/bson.h:145:39: [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). bson_append_null (b, key, (int) strlen (key)) data/libbson-xs-perl-0.8.4/bson/bson.h:148:38: [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). bson_append_oid (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:151: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). bson_append_regex (b, key, (int) strlen (key), val, opt) data/libbson-xs-perl-0.8.4/bson/bson.h:154:39: [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). bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val)) data/libbson-xs-perl-0.8.4/bson/bson.h:154:64: [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). bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val)) data/libbson-xs-perl-0.8.4/bson/bson.h:157: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). bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val)) data/libbson-xs-perl-0.8.4/bson/bson.h:157:66: [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). bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val)) data/libbson-xs-perl-0.8.4/bson/bson.h:160: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). bson_append_time_t (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:163: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). bson_append_timeval (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:166:44: [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). bson_append_date_time (b, key, (int) strlen (key), val) data/libbson-xs-perl-0.8.4/bson/bson.h:169:44: [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). bson_append_timestamp (b, key, (int) strlen (key), val, inc) data/libbson-xs-perl-0.8.4/bson/bson.h:172:44: [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). bson_append_undefined (b, key, (int) strlen (key)) data/libbson-xs-perl-0.8.4/bson/bson.h:175: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). bson_append_value (b, key, (int) strlen (key), (val)) data/libbson-xs-perl-0.8.4/ppport.h:5964: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). sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); data/libbson-xs-perl-0.8.4/ppport.h:5972:59: [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). # define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) data/libbson-xs-perl-0.8.4/ppport.h:5976:59: [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). # define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) data/libbson-xs-perl-0.8.4/ppport.h:5997: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). sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); data/libbson-xs-perl-0.8.4/ppport.h:6026: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). sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); data/libbson-xs-perl-0.8.4/ppport.h:6047: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). sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ data/libbson-xs-perl-0.8.4/ppport.h:6070: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). sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); data/libbson-xs-perl-0.8.4/ppport.h:6099: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). sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); data/libbson-xs-perl-0.8.4/ppport.h:6120: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). sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ data/libbson-xs-perl-0.8.4/ppport.h:6175:65: [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). # define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) data/libbson-xs-perl-0.8.4/ppport.h:7029:22: [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 len = strlen(radix); data/libbson-xs-perl-0.8.4/ppport.h:7619:12: [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 strlen(buffer); data/libbson-xs-perl-0.8.4/ppport.h:7660:12: [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). used = strlen(dst); data/libbson-xs-perl-0.8.4/ppport.h:7661: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). length = strlen(src); data/libbson-xs-perl-0.8.4/ppport.h:7691: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). length = strlen(src); ANALYSIS SUMMARY: Hits = 177 Lines analyzed = 26113 in approximately 0.73 seconds (35643 lines/second) Physical Source Lines of Code (SLOC) = 13350 Hits@level = [0] 17 [1] 83 [2] 85 [3] 3 [4] 6 [5] 0 Hits@level+ = [0+] 194 [1+] 177 [2+] 94 [3+] 9 [4+] 6 [5+] 0 Hits/KSLOC@level+ = [0+] 14.5318 [1+] 13.2584 [2+] 7.0412 [3+] 0.674157 [4+] 0.449438 [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.