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/nanopb-0.4.3/examples/cmake_relpath/simple.c Examining data/nanopb-0.4.3/examples/cmake_simple/simple.c Examining data/nanopb-0.4.3/examples/network_server/client.c Examining data/nanopb-0.4.3/examples/network_server/common.c Examining data/nanopb-0.4.3/examples/network_server/common.h Examining data/nanopb-0.4.3/examples/network_server/server.c Examining data/nanopb-0.4.3/examples/simple/simple.c Examining data/nanopb-0.4.3/examples/using_union_messages/decode.c Examining data/nanopb-0.4.3/examples/using_union_messages/encode.c Examining data/nanopb-0.4.3/extra/pb_syshdr.h Examining data/nanopb-0.4.3/pb.h Examining data/nanopb-0.4.3/pb_common.c Examining data/nanopb-0.4.3/pb_common.h Examining data/nanopb-0.4.3/pb_decode.c Examining data/nanopb-0.4.3/pb_decode.h Examining data/nanopb-0.4.3/pb_encode.c Examining data/nanopb-0.4.3/pb_encode.h Examining data/nanopb-0.4.3/spm-test/objc/c-header.c Examining data/nanopb-0.4.3/spm_headers/pb.h Examining data/nanopb-0.4.3/spm_headers/pb_common.h Examining data/nanopb-0.4.3/spm_headers/pb_decode.h Examining data/nanopb-0.4.3/spm_headers/pb_encode.h Examining data/nanopb-0.4.3/tests/alltypes/decode_alltypes.c Examining data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c Examining data/nanopb-0.4.3/tests/alltypes_callback/decode_alltypes_callback.c Examining data/nanopb-0.4.3/tests/alltypes_callback/encode_alltypes_callback.c Examining data/nanopb-0.4.3/tests/alltypes_pointer/decode_alltypes_pointer.c Examining data/nanopb-0.4.3/tests/alltypes_pointer/encode_alltypes_pointer.c Examining data/nanopb-0.4.3/tests/alltypes_proto3/decode_alltypes.c Examining data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c Examining data/nanopb-0.4.3/tests/alltypes_proto3_callback/decode_alltypes_callback.c Examining data/nanopb-0.4.3/tests/alltypes_proto3_callback/encode_alltypes_callback.c Examining data/nanopb-0.4.3/tests/anonymous_oneof/decode_oneof.c Examining data/nanopb-0.4.3/tests/any_type/decode_any.c Examining data/nanopb-0.4.3/tests/any_type/encode_any.c Examining data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.c Examining data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.h Examining data/nanopb-0.4.3/tests/backwards_compatibility/decode_legacy.c Examining data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c Examining data/nanopb-0.4.3/tests/basic_buffer/decode_buffer.c Examining data/nanopb-0.4.3/tests/basic_buffer/encode_buffer.c Examining data/nanopb-0.4.3/tests/basic_stream/decode_stream.c Examining data/nanopb-0.4.3/tests/basic_stream/encode_stream.c Examining data/nanopb-0.4.3/tests/callbacks/decode_callbacks.c Examining data/nanopb-0.4.3/tests/callbacks/encode_callbacks.c Examining data/nanopb-0.4.3/tests/common/malloc_wrappers.c Examining data/nanopb-0.4.3/tests/common/malloc_wrappers.h Examining data/nanopb-0.4.3/tests/common/malloc_wrappers_syshdr.h Examining data/nanopb-0.4.3/tests/common/test_helpers.h Examining data/nanopb-0.4.3/tests/common/unittests.h Examining data/nanopb-0.4.3/tests/common_unittests/common_unittests.c Examining data/nanopb-0.4.3/tests/cxx_callback_datatype/cxx_callback_datatype.cpp Examining data/nanopb-0.4.3/tests/cxx_descriptor/message_descriptor.cc Examining data/nanopb-0.4.3/tests/cyclic_messages/encode_cyclic_callback.c Examining data/nanopb-0.4.3/tests/decode_unittests/decode_unittests.c Examining data/nanopb-0.4.3/tests/encode_unittests/encode_unittests.c Examining data/nanopb-0.4.3/tests/enum_minmax/enumminmax_unittests.c Examining data/nanopb-0.4.3/tests/enum_sizes/enumsizes_unittests.c Examining data/nanopb-0.4.3/tests/enum_to_string/enum_to_string.c Examining data/nanopb-0.4.3/tests/extensions/decode_extensions.c Examining data/nanopb-0.4.3/tests/extensions/encode_extensions.c Examining data/nanopb-0.4.3/tests/field_size_16_proto3/decode_alltypes.c Examining data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c Examining data/nanopb-0.4.3/tests/fixed_count/fixed_count_unittests.c Examining data/nanopb-0.4.3/tests/float_double_conversion/float_double_conversion.c Examining data/nanopb-0.4.3/tests/fuzztest/flakystream.c Examining data/nanopb-0.4.3/tests/fuzztest/flakystream.h Examining data/nanopb-0.4.3/tests/fuzztest/fuzztest.c Examining data/nanopb-0.4.3/tests/fuzztest/generate_message.c Examining data/nanopb-0.4.3/tests/fuzztest/random_data.c Examining data/nanopb-0.4.3/tests/fuzztest/random_data.h Examining data/nanopb-0.4.3/tests/fuzztest/validation.c Examining data/nanopb-0.4.3/tests/fuzztest/validation.h Examining data/nanopb-0.4.3/tests/infinity_nan/infinity_nan_test.c Examining data/nanopb-0.4.3/tests/inline/inline_unittests.c Examining data/nanopb-0.4.3/tests/intsizes/intsizes_unittests.c Examining data/nanopb-0.4.3/tests/io_errors/io_errors.c Examining data/nanopb-0.4.3/tests/map/decode_map.c Examining data/nanopb-0.4.3/tests/map/encode_map.c Examining data/nanopb-0.4.3/tests/mem_release/mem_release.c Examining data/nanopb-0.4.3/tests/message_sizes/dummy.c Examining data/nanopb-0.4.3/tests/missing_fields/missing_fields.c Examining data/nanopb-0.4.3/tests/msgid/decode_msgid.c Examining data/nanopb-0.4.3/tests/msgid/encode_msgid.c Examining data/nanopb-0.4.3/tests/multiple_files/test_multiple_files.c Examining data/nanopb-0.4.3/tests/oneof/decode_oneof.c Examining data/nanopb-0.4.3/tests/oneof/encode_oneof.c Examining data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c Examining data/nanopb-0.4.3/tests/oneof_callback/encode_oneof.c Examining data/nanopb-0.4.3/tests/options/options.c Examining data/nanopb-0.4.3/tests/raw_decode/raw_decode.c Examining data/nanopb-0.4.3/tests/regression/GHSA-gcx3-7m76-287p/test.c Examining data/nanopb-0.4.3/tests/regression/issue_166/enum_encoded_size.c Examining data/nanopb-0.4.3/tests/regression/issue_172/msg_size.c Examining data/nanopb-0.4.3/tests/regression/issue_205/size_corruption.c Examining data/nanopb-0.4.3/tests/regression/issue_227/unaligned_uint64.c Examining data/nanopb-0.4.3/tests/regression/issue_229/multiple_oneof.c Examining data/nanopb-0.4.3/tests/regression/issue_242/zero_value.c Examining data/nanopb-0.4.3/tests/regression/issue_247/padding.c Examining data/nanopb-0.4.3/tests/regression/issue_249/test.c Examining data/nanopb-0.4.3/tests/regression/issue_253/short_array.c Examining data/nanopb-0.4.3/tests/regression/issue_256/submsg_array.c Examining data/nanopb-0.4.3/tests/regression/issue_259/callback_pointer.c Examining data/nanopb-0.4.3/tests/regression/issue_322/defaults.c Examining data/nanopb-0.4.3/tests/regression/issue_342/test_extensions.c Examining data/nanopb-0.4.3/tests/regression/issue_363/test_oneofmsg.c Examining data/nanopb-0.4.3/tests/regression/issue_376/test_fixarray.c Examining data/nanopb-0.4.3/tests/regression/issue_395/test.c Examining data/nanopb-0.4.3/tests/regression/issue_407/test_extensions.c Examining data/nanopb-0.4.3/tests/regression/issue_453/test.c Examining data/nanopb-0.4.3/tests/regression/issue_494/oneof_size.cc Examining data/nanopb-0.4.3/tests/regression/issue_504/test.c Examining data/nanopb-0.4.3/tests/regression/issue_544/submsg_callback.c Examining data/nanopb-0.4.3/tests/regression/issue_547/test.c Examining data/nanopb-0.4.3/tests/regression/issue_558/mixed.c Examining data/nanopb-0.4.3/tests/site_scons/platforms/avr/avr_io.c Examining data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c Examining data/nanopb-0.4.3/tests/site_scons/platforms/stm32/vectors.c Examining data/nanopb-0.4.3/tests/sort_by_tag/sort_by_tag.c Examining data/nanopb-0.4.3/tests/stackusage/stackusage.c Examining data/nanopb-0.4.3/tests/typename_mangling/test_flatten.c Examining data/nanopb-0.4.3/tests/typename_mangling/test_package_initials.c Examining data/nanopb-0.4.3/tests/typename_mangling/test_strip_package.c Examining data/nanopb-0.4.3/tests/without_64bit/decode_alltypes.c Examining data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c Examining data/nanopb-0.4.3/tests/without_64bit/no_64bit_syshdr.h FINAL RESULTS: data/nanopb-0.4.3/examples/network_server/client.c:72:13: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(request.path, path); data/nanopb-0.4.3/tests/callbacks/decode_callbacks.c:24:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, buffer); data/nanopb-0.4.3/tests/callbacks/decode_callbacks.c:34:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, (long)value); data/nanopb-0.4.3/tests/callbacks/decode_callbacks.c:44:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, (long)value); data/nanopb-0.4.3/tests/callbacks/decode_callbacks.c:54:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, (long)value); data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:51:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, (int)value); data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:71:5: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf((char*)*arg, buffer); data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c:47:9: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stderr , format, ap); data/nanopb-0.4.3/examples/using_union_messages/encode.c:53: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 msgtype = atoi(argv[1]); data/nanopb-0.4.3/extra/pb_syshdr.h:90:15: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. static void * memcpy( void *s1, const void *s2, size_t n ) data/nanopb-0.4.3/pb.h:153:50: [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. # define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1]; data/nanopb-0.4.3/tests/alltypes/decode_alltypes.c:314:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:16:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:39:9: [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(alltypes.req_string, "1014"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:41: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(alltypes.req_bytes.bytes, "1015", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:42:9: [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(alltypes.req_submsg.substuff1, "1016"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:45: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(alltypes.req_fbytes, "1019", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:63:40: [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. alltypes.rep_string_count = 5; strcpy(alltypes.rep_string[4], "2014"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:65: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(alltypes.rep_bytes[4].bytes, "2015", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:68:9: [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(alltypes.rep_submsg[4].substuff1, "2016"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:77: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(alltypes.rep_fbytes[4], "2019", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:138:9: [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(alltypes.opt_string, "3054"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:141: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(alltypes.opt_bytes.bytes, "3055", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:143:9: [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(alltypes.opt_submsg.substuff1, "3056"); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:149: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(alltypes.opt_fbytes, "3059", 4); data/nanopb-0.4.3/tests/alltypes/encode_alltypes.c:152:9: [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(alltypes.oneof.oneof_msg1.substuff1, "4059"); data/nanopb-0.4.3/tests/alltypes_callback/decode_alltypes_callback.c:475:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_callback/encode_alltypes_callback.c:245:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_pointer/decode_alltypes_pointer.c:182:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_pointer/encode_alltypes_pointer.c:13:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_proto3/decode_alltypes.c:149:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:13:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:34:36: [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. alltypes.rep_string_count = 5; strcpy(alltypes.rep_string[4], "2014"); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:36: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(alltypes.rep_bytes[4].bytes, "2015", 4); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:39: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(alltypes.rep_submsg[4].substuff1, "2016"); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:47: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(alltypes.rep_fbytes[4], "2019", 4); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:79:9: [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(alltypes.sng_string, "3054"); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:81: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(alltypes.sng_bytes.bytes, "3055", 4); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:83:9: [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(alltypes.sng_submsg.substuff1, "3056"); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:86: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(alltypes.sng_fbytes, "3059", 4); data/nanopb-0.4.3/tests/alltypes_proto3/encode_alltypes.c:89:9: [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(alltypes.oneof.oneof_msg1.substuff1, "4059"); data/nanopb-0.4.3/tests/alltypes_proto3_callback/decode_alltypes_callback.c:405:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/alltypes_proto3_callback/encode_alltypes_callback.c:215:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/anonymous_oneof/decode_oneof.c:65:14: [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). option = atoi(argv[1]); data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.h:59: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 substuff1[16]; data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.h:84: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 req_string[16]; data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.h:115: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 rep_string[5][16]; data/nanopb-0.4.3/tests/backwards_compatibility/alltypes_legacy.h:149: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 opt_string[16]; data/nanopb-0.4.3/tests/backwards_compatibility/decode_legacy.c:179:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:16:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:37: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(alltypes.req_string, "1014"); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:39: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(alltypes.req_bytes.bytes, "1015", 4); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:40: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(alltypes.req_submsg.substuff1, "1016"); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:60:36: [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. alltypes.rep_string_count = 5; strcpy(alltypes.rep_string[4], "2014"); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:62: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(alltypes.rep_bytes[4].bytes, "2015", 4); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:65: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(alltypes.rep_submsg[4].substuff1, "2016"); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:105:9: [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(alltypes.opt_string, "3054"); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:108: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(alltypes.opt_bytes.bytes, "3055", 4); data/nanopb-0.4.3/tests/backwards_compatibility/encode_legacy.c:110:9: [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(alltypes.opt_submsg.substuff1, "3056"); data/nanopb-0.4.3/tests/callbacks/encode_callbacks.c:49: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[4] = {"Hello world!", "", "Test", "Test2"}; data/nanopb-0.4.3/tests/cyclic_messages/encode_cyclic_callback.c:53:21: [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). tree.leaf = atoi(p); data/nanopb-0.4.3/tests/cyclic_messages/encode_cyclic_callback.c:107:29: [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). pair.intValue = atoi(p); data/nanopb-0.4.3/tests/decode_unittests/decode_unittests.c:290:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char d[5]; data/nanopb-0.4.3/tests/encode_unittests/encode_unittests.c:255:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char value[30] = "xyzzy"; data/nanopb-0.4.3/tests/encode_unittests/encode_unittests.c:412:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char *strs[1] = {NULL}; data/nanopb-0.4.3/tests/field_size_16_proto3/decode_alltypes.c:149:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:13:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:34:36: [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. alltypes.rep_string_count = 5; strcpy(alltypes.rep_string[4], "2014"); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:36: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(alltypes.rep_bytes[4].bytes, "2015", 4); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:39: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(alltypes.rep_submsg[4].substuff1, "2016"); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:47: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(alltypes.rep_fbytes[4], "2019", 4); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:79:9: [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(alltypes.sng_string, "3054"); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:81: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(alltypes.sng_bytes.bytes, "3055", 4); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:83:9: [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(alltypes.sng_submsg.substuff1, "3056"); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:86: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(alltypes.sng_fbytes, "3059", 4); data/nanopb-0.4.3/tests/field_size_16_proto3/encode_alltypes.c:89:9: [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(alltypes.oneof.oneof_msg1.substuff1, "4059"); data/nanopb-0.4.3/tests/fuzztest/flakystream.c:18: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, state->buffer + state->position, count); data/nanopb-0.4.3/tests/fuzztest/fuzztest.c:372: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(msg, &initval, sizeof(initval)); data/nanopb-0.4.3/tests/fuzztest/fuzztest.c:436:36: [2] (integer) atol: 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). iterations = (argc >= 3) ? atol(argv[2]) : 10000; data/nanopb-0.4.3/tests/fuzztest/generate_message.c:82:21: [2] (integer) atol: 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). random_set_seed(atol(argv[1])); data/nanopb-0.4.3/tests/fuzztest/random_data.c:164: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(buf + s + l, buf + s, l); data/nanopb-0.4.3/tests/fuzztest/random_data.c:186: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(buffer, tmp, s); data/nanopb-0.4.3/tests/msgid/encode_msgid.c:37: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(msg.strvalue, "Msg2"); data/nanopb-0.4.3/tests/msgid/encode_msgid.c:62:14: [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). option = atoi(argv[1]); data/nanopb-0.4.3/tests/oneof/decode_oneof.c:102:14: [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). option = atoi(argv[1]); data/nanopb-0.4.3/tests/oneof/encode_oneof.c:21:14: [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). option = atoi(argv[1]); data/nanopb-0.4.3/tests/oneof/encode_oneof.c:36:9: [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(msg.values.second, "abcd"); data/nanopb-0.4.3/tests/oneof_callback/encode_oneof.c:71:14: [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). option = atoi(argv[1]); data/nanopb-0.4.3/tests/oneof_callback/encode_oneof.c:86:9: [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(msg.values.strvalue, "abcd"); data/nanopb-0.4.3/tests/raw_decode/raw_decode.c:25: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(g_history + HISTORY_LEN - len, buf, len); data/nanopb-0.4.3/tests/raw_decode/raw_decode.c:29: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(g_history, buf + len - HISTORY_LEN, HISTORY_LEN); data/nanopb-0.4.3/tests/raw_decode/raw_decode.c:64: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. const char *wiretypes[8] = {"VARINT", "64BIT", "STRING", "SGRP", "EGRP", "32BIT", "????", "????"}; data/nanopb-0.4.3/tests/raw_decode/raw_decode.c:157:21: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char prefix[8]; data/nanopb-0.4.3/tests/regression/issue_504/test.c:28: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(pStrAligned, STR, sizeof(STR)); data/nanopb-0.4.3/tests/site_scons/platforms/avr/avr_io.c:16: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 args[3][16]; data/nanopb-0.4.3/tests/site_scons/platforms/avr/avr_io.c:34:8: [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 char g_malloc_heap[8192]; data/nanopb-0.4.3/tests/site_scons/platforms/avr/avr_io.c:53: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. const char *argv[4] = {"main", g_args.args[0], g_args.args[1], g_args.args[2]}; data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c:20: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 args[3][16]; data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c:96: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. const char *irq_names[2] = {"8<uart_in", "8>uart_out"}; data/nanopb-0.4.3/tests/stackusage/stackusage.c:52: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(msg.settings.name, "abcd"); data/nanopb-0.4.3/tests/without_64bit/decode_alltypes.c:165:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:13:29: [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 mode = (argc > 1) ? atoi(argv[1]) : 0; data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:27: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(alltypes.req_string, "1014"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:29: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(alltypes.req_bytes.bytes, "1015", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:30: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(alltypes.req_submsg.substuff1, "1016"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:33: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(alltypes.req_fbytes, "1019", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:44:36: [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. alltypes.rep_string_count = 5; strcpy(alltypes.rep_string[4], "2014"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:46: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(alltypes.rep_bytes[4].bytes, "2015", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:49: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(alltypes.rep_submsg[4].substuff1, "2016"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:58: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(alltypes.rep_fbytes[4], "2019", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:87:9: [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(alltypes.opt_string, "3054"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:90: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(alltypes.opt_bytes.bytes, "3055", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:92:9: [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(alltypes.opt_submsg.substuff1, "3056"); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:98: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(alltypes.opt_fbytes, "3059", 4); data/nanopb-0.4.3/tests/without_64bit/encode_alltypes.c:101:9: [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(alltypes.oneof.oneof_msg1.substuff1, "4059"); data/nanopb-0.4.3/examples/network_server/client.c:66:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(path) + 1 > sizeof(request.path)) data/nanopb-0.4.3/examples/network_server/server.c:43:13: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fileinfo.name, file->d_name, sizeof(fileinfo.name)); data/nanopb-0.4.3/extra/pb_syshdr.h:80:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). static size_t strlen( const char * s ) data/nanopb-0.4.3/tests/alltypes_callback/encode_alltypes_callback.c:52: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). pb_encode_string(stream, *arg, strlen(*arg)); data/nanopb-0.4.3/tests/alltypes_callback/encode_alltypes_callback.c:161: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). pb_encode_string(stream, *arg, strlen(*arg)); data/nanopb-0.4.3/tests/alltypes_proto3_callback/encode_alltypes_callback.c:52: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). pb_encode_string(stream, *arg, strlen(*arg)); data/nanopb-0.4.3/tests/alltypes_proto3_callback/encode_alltypes_callback.c:161: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). pb_encode_string(stream, *arg, strlen(*arg)); data/nanopb-0.4.3/tests/any_type/encode_any.c:22: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 string. strncpy(msg.details.type_url, "type.googleapis.com/google.protobuf.Duration", sizeof(msg.details.type_url)); data/nanopb-0.4.3/tests/callbacks/encode_callbacks.c:16:52: [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 pb_encode_string(stream, (uint8_t*)str, strlen(str)); data/nanopb-0.4.3/tests/callbacks/encode_callbacks.c:57:57: [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 (!pb_encode_string(stream, (uint8_t*)str[i], strlen(str[i]))) data/nanopb-0.4.3/tests/cyclic_messages/encode_cyclic_callback.c:75:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(pair.key, p, textlen); data/nanopb-0.4.3/tests/cyclic_messages/encode_cyclic_callback.c:93:13: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(pair.stringValue, p, textlen); data/nanopb-0.4.3/tests/fuzztest/validation.c:41: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). assert(strlen(pData) + 1 <= iter->data_size); data/nanopb-0.4.3/tests/fuzztest/validation.c:116: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). assert(strlen(str) + 1 <= get_allocation_size(str)); data/nanopb-0.4.3/tests/map/encode_map.c:17: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 string. strncpy(msg.numbers[0].key, "one", sizeof(msg.numbers[0].key)); data/nanopb-0.4.3/tests/map/encode_map.c:18: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 string. strncpy(msg.numbers[1].key, "two", sizeof(msg.numbers[1].key)); data/nanopb-0.4.3/tests/map/encode_map.c:19: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 string. strncpy(msg.numbers[2].key, "seven", sizeof(msg.numbers[2].key)); data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:28:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen > sizeof(buffer) - 1) data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:31: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). buffer[strlen] = '\0'; data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:33: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). if (!pb_read(istream, buffer, strlen)) data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:60:9: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen > sizeof(buffer) - 1) data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:63: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). buffer[strlen] = '\0'; data/nanopb-0.4.3/tests/oneof_callback/decode_oneof.c:65:34: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (!pb_read(stream, buffer, strlen)) data/nanopb-0.4.3/tests/oneof_callback/encode_oneof.c:26:63: [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 pb_encode_string(ostream, (const uint8_t*)str, strlen(str)); data/nanopb-0.4.3/tests/oneof_callback/encode_oneof.c:56:58: [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 pb_encode_string(stream, (const uint8_t*)str, strlen(str)); data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c:70:17: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). v = fgetc(stdin); data/nanopb-0.4.3/tests/site_scons/platforms/avr/run_test.c:171:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(g_args.args[i], argv[i + argc_offset], 15); ANALYSIS SUMMARY: Hits = 142 Lines analyzed = 16419 in approximately 0.45 seconds (36425 lines/second) Physical Source Lines of Code (SLOC) = 12173 Hits@level = [0] 245 [1] 27 [2] 107 [3] 0 [4] 8 [5] 0 Hits@level+ = [0+] 387 [1+] 142 [2+] 115 [3+] 8 [4+] 8 [5+] 0 Hits/KSLOC@level+ = [0+] 31.7917 [1+] 11.6652 [2+] 9.44714 [3+] 0.657192 [4+] 0.657192 [5+] 0 Symlinks skipped = 4 (--allowlink overrides but see doc for security issue) 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.