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/gauche-c-wrapper-0.6.1/examples/sdl/sdl_helper.c Examining data/gauche-c-wrapper-0.6.1/libffi/include/ffi_common.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/alpha/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/alpha/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/arm/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/arm/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/debug.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/frv/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/frv/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ia64_flags.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/java_raw_api.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/m68k/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/m68k/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/asm.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi_darwin.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/prep_cif.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/raw_api.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/s390/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/s390/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/sh64/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/sh64/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/src/types.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c Examining data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffitarget.h Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn0.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn3.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn4.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/closure_fn5.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_12byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_16byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_18byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_19byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_1_1byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_20byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_20byte1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_24byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_2byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_3_1byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_3byte1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_3byte2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_4_1byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_4byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_5_1_byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_5byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_64byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_6_1_byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_6byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_7_1_byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_7byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_8byte.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_9byte1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_9byte2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_double.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_float.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_longdouble.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_pointer.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_sint16.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_sint32.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_sint64.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_uint16.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_uint32.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_align_uint64.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_double.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_float.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_schar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_sshort.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_sshortchar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_ushort.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_ushortchar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_schar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_sint.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_sshort.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_uchar.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_uint.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_ulonglong.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_ushort.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/ffitest.h Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/float.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/float1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/float2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/float3.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/many.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/many_win32.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/negint.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/nested_struct.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/nested_struct1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/nested_struct2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/nested_struct3.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/problem1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/promotion.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/pyobjc-tc.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/return_ll.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/return_ll1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/return_sc.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/return_uc.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/strlen.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/strlen_win32.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct1.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct2.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct3.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct4.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct5.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct6.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct7.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct8.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/struct9.c Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.special/ffitestcxx.h Examining data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.special/unwindtest.cc Examining data/gauche-c-wrapper-0.6.1/src/c-ffi.c Examining data/gauche-c-wrapper-0.6.1/src/c-ffi.h Examining data/gauche-c-wrapper-0.6.1/src/c-lex.c Examining data/gauche-c-wrapper-0.6.1/src/c-lex.h Examining data/gauche-c-wrapper-0.6.1/src/c-parser.h Examining data/gauche-c-wrapper-0.6.1/src/closure_alloc.h Examining data/gauche-c-wrapper-0.6.1/src/ObjCError.c Examining data/gauche-c-wrapper-0.6.1/src/ObjCError.h Examining data/gauche-c-wrapper-0.6.1/src/util.h Examining data/gauche-c-wrapper-0.6.1/src/y.tab.c Examining data/gauche-c-wrapper-0.6.1/src/c-parser.c Examining data/gauche-c-wrapper-0.6.1/src/closure_alloc.c Examining data/gauche-c-wrapper-0.6.1/testsuite/array_qualifier.h Examining data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c Examining data/gauche-c-wrapper-0.6.1/testsuite/ffitest.h Examining data/gauche-c-wrapper-0.6.1/testsuite/fptr_array.c Examining data/gauche-c-wrapper-0.6.1/testsuite/fptr_array.h Examining data/gauche-c-wrapper-0.6.1/testsuite/gcc_extension.c Examining data/gauche-c-wrapper-0.6.1/testsuite/gcc_extension.h Examining data/gauche-c-wrapper-0.6.1/testsuite/objc-test.h Examining data/gauche-c-wrapper-0.6.1/testsuite/struct_in_union.h FINAL RESULTS: data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c:43: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 debug(lvl, x...) do { if (lvl <= DEBUG_LEVEL) { printf(x); } } while (0) data/gauche-c-wrapper-0.6.1/src/y.tab.c:2768:21: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. # define YYFPRINTF fprintf data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:147:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(result, v1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:148:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(result, v2); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:309:9: [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(result[i], v1[i]); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:310:9: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(result[i], v2[i]); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:533:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(result.value, v1.value); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:534:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(result.value, v2.value); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:573:9: [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(result.value[i], v1.value[i]); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:574:9: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(result.value[i], v2.value[i]); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:600:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(result.str, v1.str); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:601:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(result.str, v2.str); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:875:27: [3] (misc) LoadLibrary: Ensure that the full path to the library is specified, or current directory may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to find library path, if you aren't already. void *handle = (void*)LoadLibrary(SCM_MBS2WCS(path)); data/gauche-c-wrapper-0.6.1/libffi/include/ffi_common.h:40: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. # define memcpy(d, s, n) bcopy ((s), (d), (n)) data/gauche-c-wrapper-0.6.1/libffi/include/ffi_common.h:40:27: [2] (buffer) bcopy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. # define memcpy(d, s, n) bcopy ((s), (d), (n)) data/gauche-c-wrapper-0.6.1/libffi/src/alpha/ffi.c:133: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(argp, *avalue, (*arg_types)->size); data/gauche-c-wrapper-0.6.1/libffi/src/arm/ffi.c:99:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:93:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:98:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:109:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ((stack + uiLocOnStack), *p_argv, (*p_arg)->size); data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:145:6: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:373:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (closure->tramp, ffi_cris_trampoline_template, data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:375:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (closure->tramp + ffi_cris_trampoline_fn_offset, data/gauche-c-wrapper-0.6.1/libffi/src/cris/ffi.c:377:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (closure->tramp + ffi_cris_trampoline_closure_offset, data/gauche-c-wrapper-0.6.1/libffi/src/frv/ffi.c:100: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ffi.c:330: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 (&stack->gp_regs[gpcount], avalue[i], 16); data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ffi.c:362:6: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (&stack->gp_regs[gpcount], avalue[i], size); data/gauche-c-wrapper-0.6.1/libffi/src/ia64/ffi.c:544: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 (addr + offset, (char *)stack->gp_regs + gp_offset, data/gauche-c-wrapper-0.6.1/libffi/src/java_raw_api.c: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 ((void*) raw->data, (void*)*args, (*tp)->size); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:96: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:98: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 (argp + 4 - z, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:121:16: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:128:12: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:228: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 (ecif.rvalue, ecif.rvalue + 8-size, size); data/gauche-c-wrapper-0.6.1/libffi/src/m32r/ffi.c:236: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 (ecif.rvalue, ecif.rvalue + 8-size, size); data/gauche-c-wrapper-0.6.1/libffi/src/m68k/ffi.c:66: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 (argp + sizeof (int) - z, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/m68k/ffi.c:75:6: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c:141:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, (*p_arg)->size); data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c:148: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c:158:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c:163:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, portion); data/gauche-c-wrapper-0.6.1/libffi/src/mips/ffi.c:165:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c:214:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *)dest_cpy, (char *)*p_argv, (*p_arg)->size); data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c:223:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *)dest_cpy, (char *)*p_argv, (*p_arg)->size); data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c:542: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*)tmp, &ret[0], cif->rtype->size); data/gauche-c-wrapper-0.6.1/libffi/src/pa/ffi.c:562:2: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ((char *)ret2 + off, ret, 8 - off); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c:214: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(copy_space, (char *)*p_argv, (*ptr)->size); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c:392:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *) next_arg, (char *) *p_argv, first); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c:393:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *) rest, (char *) *p_argv + first, data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c:406:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (where, (char *) *p_argv, (*ptr)->size); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi.c:788:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (tramp, (char *) ffi_closure_LINUX64, 16); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi_darwin.c:202: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((char *)dest_cpy, (char *)*p_argv, size_al); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi_darwin.c:742:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (&temp_ld.lb[0], pfr, sizeof(ldbits)); data/gauche-c-wrapper-0.6.1/libffi/src/powerpc/ffi_darwin.c:743:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (&temp_ld.lb[1], pgr + 2, sizeof(ldbits)); data/gauche-c-wrapper-0.6.1/libffi/src/raw_api.c:176: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 ((void*) raw->data, (void*)*args, (*tp)->size); data/gauche-c-wrapper-0.6.1/libffi/src/s390/ffi.c:219:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (p_struct, (char *)arg, (*ptr)->size); data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c:203: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c:218: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c:294: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c:313: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh/ffi.c:462: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 (rvalue, &trvalue, cif->rtype->size); data/gauche-c-wrapper-0.6.1/libffi/src/sh64/ffi.c:106:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh64/ffi.c:147: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 (argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sh64/ffi.c:288: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 (rvalue, &trvalue, cif->rtype->size); data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffi.c:111: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffi.c:216:8: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffi.c:227: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/sparc/ffi.c:238: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi.c:109: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(argp, *p_argv, z); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi.c:402:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (stack, ecif->avalue, ecif->cif->bytes); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c:395: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 (argp, avalue[i], size); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c:401:15: [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 *a = (char *) avalue[i]; data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c:411: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 (®_args->gpr[gprcount], a, size < 8 ? size : 8); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c:555:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (a, ®_args->sse[ssecount++], 8); data/gauche-c-wrapper-0.6.1/libffi/src/x86/ffi64.c:557:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (a, ®_args->gpr[gprcount++], 8); data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_schar.c:26:17: [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. a1 = *(signed char *)avals[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_schar.c:27:17: [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. a2 = *(signed char *)avals[1]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_sshortchar.c:28:17: [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. a1 = *(signed char *)avals[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_sshortchar.c:30:17: [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. a3 = *(signed char *)avals[2]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:27:19: [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. a1 = *(unsigned char *)avals[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:28:19: [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. a2 = *(unsigned char *)avals[1]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:29:19: [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. a3 = *(unsigned char *)avals[2]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:30:19: [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. a4 = *(unsigned char *)avals[3]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:40: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. printf("%d %d %d %d\n", *(unsigned char *)avals[0], data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:41:14: [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 *)avals[1], *(unsigned char *)avals[2], data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:41:42: [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 *)avals[1], *(unsigned char *)avals[2], data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_uchar.c:42:14: [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 *)avals[3]); data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_ushortchar.c:28:19: [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. a1 = *(unsigned char *)avals[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_multi_ushortchar.c:30:19: [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. a3 = *(unsigned char *)avals[2]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_schar.c:13:30: [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. *(ffi_arg*)resp = *(signed char *)args[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_schar.c:14:30: [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. printf("%d: %d\n",*(signed char *)args[0], data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_uchar.c:13:32: [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. *(ffi_arg*)resp = *(unsigned char *)args[0]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/cls_uchar.c:14:32: [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. printf("%d: %d\n",*(unsigned char *)args[0], data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/ffitest.h:51:21: [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). dev_zero_fd = open ("/dev/zero", O_RDONLY); data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/float1.c:14:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char c[sizeof (double)]; data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.special/ffitestcxx.h:49:21: [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). dev_zero_fd = open ("/dev/zero", O_RDONLY); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:115: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(SCM_UVECTOR_ELEMENTS(uvec), &ptr, sizeof(void*)); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:122: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(&ptr, SCM_UVECTOR_ELEMENTS(uvec), sizeof(void*)); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:248: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(follow_elem_type, elem_type, sizeof(ffi_type)); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:685: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(atypes, c_subr_info->cif->arg_types, sizeof(ffi_type*) * c_subr_info->cif->nargs); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:703:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, &result, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:705:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, data/gauche-c-wrapper-0.6.1/src/c-ffi.c:710:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, &result, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:793:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, &result, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:795:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, data/gauche-c-wrapper-0.6.1/src/c-ffi.c:800:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, &result, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:830:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue, proc_result_ptr, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:832:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rvalue + sizeof(ffi_arg) - cif->rtype->size, data/gauche-c-wrapper-0.6.1/src/c-ffi.c:836: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(rvalue, proc_result_ptr, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:839: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(rvalue, proc_result_ptr, cif->rtype->size); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:900:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[80]; data/gauche-c-wrapper-0.6.1/src/c-ffi.c:901:5: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf(buf, "rror code %d", GetLastError()); data/gauche-c-wrapper-0.6.1/src/c-parser.c:801: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 numbuf[50]; data/gauche-c-wrapper-0.6.1/src/y.tab.c:3068: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 const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; data/gauche-c-wrapper-0.6.1/src/y.tab.c:3085: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 yyformat[sizeof yyunexpected data/gauche-c-wrapper-0.6.1/src/y.tab.c:3275:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char yymsgbuf[128]; data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:624:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(var_string, "bar"); data/gauche-c-wrapper-0.6.1/testsuite/fptr_array.h:3: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 *(*c[10])(int *p); data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/strlen.c:12:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). return (strlen(s)); data/gauche-c-wrapper-0.6.1/libffi/testsuite/libffi.call/strlen_win32.c:13:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). return (strlen(s)); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:934:19: [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). tagname_len = strlen(tagname_str); data/gauche-c-wrapper-0.6.1/src/c-ffi.c:952:19: [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). tagname_len = strlen(tagname_str); data/gauche-c-wrapper-0.6.1/src/y.tab.c:2949: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). # define yystrlen strlen data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:146:35: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *result = (char*) malloc(strlen(v1) + strlen(v2) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:146: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). char *result = (char*) malloc(strlen(v1) + strlen(v2) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:308:36: [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). result[i] = (char*) malloc(strlen(v1[i]) + strlen(v2[i]) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:308: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). result[i] = (char*) malloc(strlen(v1[i]) + strlen(v2[i]) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:532:35: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). result.value = (char*) malloc(strlen(v1.value) + strlen(v2.value) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:532:54: [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). result.value = (char*) malloc(strlen(v1.value) + strlen(v2.value) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:572:30: [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). = (char*) malloc(strlen(v1.value[i]) + strlen(v2.value[i]) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:572: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). = (char*) malloc(strlen(v1.value[i]) + strlen(v2.value[i]) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:599:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). result.str = (char*) malloc(strlen(v1.str) + strlen(v2.str) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:599: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). result.str = (char*) malloc(strlen(v1.str) + strlen(v2.str) + 1); data/gauche-c-wrapper-0.6.1/testsuite/ffitest.c:676: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(str, "foobar", 7); ANALYSIS SUMMARY: Hits = 134 Lines analyzed = 31839 in approximately 0.89 seconds (35938 lines/second) Physical Source Lines of Code (SLOC) = 22875 Hits@level = [0] 491 [1] 16 [2] 105 [3] 1 [4] 12 [5] 0 Hits@level+ = [0+] 625 [1+] 134 [2+] 118 [3+] 13 [4+] 12 [5+] 0 Hits/KSLOC@level+ = [0+] 27.3224 [1+] 5.85792 [2+] 5.15847 [3+] 0.568306 [4+] 0.52459 [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.