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/tcc-0.9.27+git20200814.62c30a4a/arm-asm.c Examining data/tcc-0.9.27+git20200814.62c30a4a/arm-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/arm-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/arm64-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/c67-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/c67-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/coff.h Examining data/tcc-0.9.27+git20200814.62c30a4a/conftest.c Examining data/tcc-0.9.27+git20200814.62c30a4a/elf.h Examining data/tcc-0.9.27+git20200814.62c30a4a/examples/ex1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/examples/ex2.c Examining data/tcc-0.9.27+git20200814.62c30a4a/examples/ex3.c Examining data/tcc-0.9.27+git20200814.62c30a4a/examples/ex4.c Examining data/tcc-0.9.27+git20200814.62c30a4a/examples/ex5.c Examining data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.c Examining data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.h Examining data/tcc-0.9.27+git20200814.62c30a4a/i386-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/i386-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/i386-tok.h Examining data/tcc-0.9.27+git20200814.62c30a4a/il-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/il-opcodes.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/float.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/stdalign.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/stdarg.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/stdbool.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/stddef.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/stdnoreturn.h Examining data/tcc-0.9.27+git20200814.62c30a4a/include/varargs.h Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/armeabi.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-dll.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-exe.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-log.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/dsohandle.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/libtcc1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/lib/va_list.c Examining data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c Examining data/tcc-0.9.27+git20200814.62c30a4a/libtcc.h Examining data/tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c Examining data/tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/riscv64-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/stab.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tcc.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tcc.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tcctok.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/42test.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/abitest.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/asm-c-connect-1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/asm-c-connect-2.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/bug.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/01.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/02.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/03.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/04.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/05.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/06.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/07.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/08.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/09.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/10.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/11.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/14.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/15.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/16.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/17.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/18.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/19.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/20.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/21.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/pp-counter.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/00_assignment.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/01_comment.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/02_printf.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/03_struct.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/04_for.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/05_array.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/06_case.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/07_function.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/08_while.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/09_do_while.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/100_c99array-decls.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/101_cleanup.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/102_alignas.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/103_implicit_memmove.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/104+_inline.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/104_inline.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/105_local_extern.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/106_pthread.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/107_stack_safe.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/108_constructor.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/109_float_struct_calling.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/10_pointer.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/110_average.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/111_conversion.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/113_btdll.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/114_bound_signal.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/115_bound_setjmp.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/116_bound_setjmp2.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/11_precedence.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/12_hashdefine.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/13_integer_literals.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/14_if.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/15_recursion.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/16_nesting.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/17_enum.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/18_include.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/18_include.h Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/19_pointer_arithmetic.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/20_pointer_comparison.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/21_char_array.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/22_floating_point.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/23_type_coercion.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/24_math_library.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/25_quicksort.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/26_character_constants.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/27_sizeof.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/29_array_address.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/30_hanoi.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/31_args.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/32_led.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/33_ternary_op.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/34_array_assignment.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/35_sizeof.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/36_array_initialisers.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/37_sprintf.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/38_multiple_array_index.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/39_typedef.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/41_hashif.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/42_function_pointer.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/43_void_param.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/44_scoped_declarations.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/45_empty_for.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/46_grep.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/47_switch_return.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/48_nested_break.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/49_bracket_evaluation.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/50_logical_second_arg.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/51_static.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/52_unnamed_enum.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/54_goto.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/55_lshift_type.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/60_errors_and_warnings.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/61_integers.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/64_macro_nesting.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/67_macro_concat.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/70_floating_point_literals.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/71_macro_empty_arg.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/72_long_long_constant.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/75_array_in_struct_init.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/76_dollars_in_identifiers.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/77_push_pop_macro.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/78_vla_label.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/79_vla_continue.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/80_flexarray.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/81_types.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/82_attribs_position.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/83_utf8_in_identifiers.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/84_hex-float.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/85_asm-outside-function.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/86_memory-model.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/87_dead_code.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/88_codeopt.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/89_nocode_wanted.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/90_struct-init.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/91_ptr_longlong_arith32.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/92_enum_bitfield.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/93_integer_promotion.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/94_generic.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/95_bitfields.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/95_bitfields_ms.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/96_nodata_wanted.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/97_utf8_string_literal.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/98_al_ax_extend.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c Parsing failed to find end of parameter list; semicolon terminated it in ("sizeof( (struct {int i; int j;}){4,5} ) = %d\n", sizeof( (struct {int i; int j;}){4,5} )); /* And as direct sizeof argument (as unary expression): */ printf("sizeof (struct {short i; sho Parsing failed to find end of parameter list; semicolon terminated it in ("sizeof (struct {short i; short j;}){4,5} = %d\n", sizeof (struct {short i; short j;}){4,5} ); /* sizeof(x && y) should be sizeof(int), even if constant evaluating is possible. */ Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/examples/dll.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/examples/fib.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/examples/hello_dll.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/examples/hello_win.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/_mingw.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/assert.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/conio.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/ctype.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/dir.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/direct.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/dirent.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/dos.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/errno.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/excpt.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/fcntl.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/fenv.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/inttypes.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/iso646.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/limits.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/locale.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/malloc.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/math.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/mem.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/memory.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/conio_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/crtdbg_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/io_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/mbstring_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/search_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/stdio_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/stdlib_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/stralign_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/string_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/sys/timeb_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/tchar_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/time_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sec_api/wchar_s.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/setjmp.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/share.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/signal.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdint.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/fcntl.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/file.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/locking.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/stat.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/time.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/timeb.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/types.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/unistd.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/sys/utime.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tcc/tcc_libm.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/time.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/uchar.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/vadefs.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/values.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wctype.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/basetsd.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/basetyps.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/guiddef.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/poppack.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/pshpack1.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/pshpack2.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/pshpack4.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/pshpack8.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/qos.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/wincon.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/windef.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/windows.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winerror.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/wingdi.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnls.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnt.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winreg.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winuser.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winver.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/ws2ipdef.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/ws2tcpip.h Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/crt1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/crt1w.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/crtinit.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/dllcrt1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/dllmain.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/wincrt1.c Examining data/tcc-0.9.27+git20200814.62c30a4a/win32/lib/wincrt1w.c Examining data/tcc-0.9.27+git20200814.62c30a4a/x86_64-asm.h Examining data/tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c Examining data/tcc-0.9.27+git20200814.62c30a4a/x86_64-link.c Examining data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c FINAL RESULTS: data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:39:7: [5] (buffer) gets: Does not check for buffer overflows (CWE-120, CWE-20). Use fgets() instead. char *gets(char *s); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:740:5: [5] (race) chmod: This accepts filename arguments; if an attacker can move those files, a race condition results. (CWE-362). Use fchmod( ) instead. chmod(pe->filename, 0777); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:306:15: [5] (race) chmod: This accepts filename arguments; if an attacker can move those files, a race condition results. (CWE-362). Use fchmod( ) instead. int __cdecl chmod (const char *, int); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:360:15: [5] (race) chmod: This accepts filename arguments; if an attacker can move those files, a race condition results. (CWE-362). Use fchmod( ) instead. int __cdecl chmod(const char *_Filename,int _AccessMode); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:199:17: [5] (buffer) gets: Does not check for buffer overflows (CWE-120, CWE-20). Use fgets() instead. char *__cdecl gets(char *_Buffer); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:199:9: [5] (buffer) _getts: Does not check for buffer overflows (CWE-120, CWE-20). Use fgets() instead. #define _getts _getws data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:570:9: [5] (buffer) _getts: Does not check for buffer overflows (CWE-120, CWE-20). Use fgets() instead. #define _getts gets data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:570:16: [5] (buffer) gets: Does not check for buffer overflows (CWE-120, CWE-20). Use fgets() instead. #define _getts gets data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:44:49: [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 dprintf(a...) if (print_calls) fprintf(a) data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1510:12: [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). return strcpy (dest, src); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1584:12: [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). return strcat(r, s); data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-dll.c:62:13: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buf, data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-log.c:32:15: [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. ret = vfprintf(stderr, fmt, ap); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:265: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(ptr, str); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:401: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(ptr, str); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:501:5: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. vsnprintf(buf + len, buf_size - len, fmt, ap); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1232:9: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, sizeof(buf), fmt, paths[i], filename); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1731: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(f->name, filename); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:285:13: [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(version); data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:59:10: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define snprintf _snprintf data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:59:19: [4] (format) _snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define snprintf _snprintf data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:60:10: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define vsnprintf _vsnprintf data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:108:51: [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 PRINTF_LIKE(x,y) __attribute__ ((format (printf, (x), (y)))) data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:765:17: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(sname, "%s%d", get_tok_str(tok1, NULL), n); data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:767:17: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(sname, "%s", get_tok_str(tok1, NULL)); data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1147: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(op->constraint, astr.data); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:129:6: [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(coff_sec->s_name, tcc_sect->name); /* section name */ data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:277:7: [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(last_func_name, func_name); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:453:7: [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(last_func_name, func_name); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:532:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(csym._n._n_name, name); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:542:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(pCoff_str_table, name); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:213: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(sec->name, name); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:734:9: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, sizeof(buf), REL_SECTION_FMT, s->name); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2435:17: [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(ptr, elfint); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3279: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(dllref->name, soname); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:920:17: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buf1, "_%s@%d", name, ref->f.func_args * PTR_SIZE); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5976:17: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf (str, "!%s", name); /* illegal name */ data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:8393:21: [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(fn->filename, file->filename); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h: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. int printf(const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:45:5: [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. int fprintf(FILE *stream, const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:46:5: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. int sprintf(char *str, const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:47:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int snprintf(char *str, size_t size, const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:50:5: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int vprintf(const char *format, va_list ap); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:51:5: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int vfprintf(FILE *stream, const char *format, va_list ap); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:52:5: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. int vsprintf(char *str, const char *format, va_list ap); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:53:5: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int vsnprintf(char *str, size_t size, const char *format, va_list ap); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:60:7: [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). char *strcat(char *dest, const char *src); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:63:7: [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). char *strcpy(char *dest, const char *src); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:35:34: [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 dprintf if (DEBUG_MACHO) printf data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:302: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((char*)lc + lc->name, name); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:957: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(dllref->name, soname); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:400:10: [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(buffer, s+1)[p-s-1] = 0; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:402:27: [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). buffer[0] = '_', strcpy(buffer + 1, s); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:404:10: [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(buffer, s + 6), a = 1; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:406:10: [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(buffer, s + 6), a = 1; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1163: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(si->name, s->name); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1290:21: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, "IAT.%s", name); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1532: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(dllref->name, dllname); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:394:11: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. len = vsnprintf(NULL, 0, fmt, v); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:400:5: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. vsnprintf((char*)cstr->data + cstr->size, size, fmt, v); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1439:5: [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. fprintf(s->ppfp, &"\n[%s]\n"[!(s->dflag & 32)], p), fflush(s->ppfp); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1629: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(e->filename, filename); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3880:2: [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. fprintf(fp, &" %s"[s], get_tok_str(t, &cval)), s = 1; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:365:15: [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. int ret = vfprintf(stderr, fmt, ap); data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:892:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. TCCSYM(printf) data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:893:12: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. TCCSYM(fprintf) data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:137:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(tfile, "%s.tmp", argv[i_lib]); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:214:21: [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(anames + strpos, strtab + sym->st_name); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:332:17: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(outfile, argv[i]); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:336: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(infile, a); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:351: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(outfile, tcc_basename(infile)); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:460: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(d, s0); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:479:9: [4] (shell) execvp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. #define execvp execvp_win32 data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:488:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(program, sizeof program, data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:500:9: [4] (shell) execvp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. execvp(argv[0] = program, argv); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:213:37: [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). printf("alloca : %s : %s\n", p, strcpy(alloca(strlen(demo)+1),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:229:37: [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). printf("alloca : %s : %s\n", p, strcpy(alloca(strlen(demo)),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:117:9: [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. fprintf(stderr, __FILE__ ": could not create tcc state\n"); data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:132:9: [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. fprintf(stderr, __FILE__ ": could not relocate tcc state.\n"); data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:137:9: [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. fprintf(stderr, __FILE__ ": could not get entry symbol.\n"); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:68:36: [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). q = strchr(strcpy(q, sr[f]), 0); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:80: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(q, p); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:80:19: [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). __BOTH(char*, strcpy, (char *, const char *)) data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:84:19: [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). __BOTH(char*, strcat, (char*, const char*)) data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:91:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define pf printf data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:108:28: [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 dprintf(level,...) printf(__VA_ARGS__) data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:112:39: [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 dprintf1(level, fmt, args...) printf(fmt, ## args) data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2107: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(fmt " " fmt " " fmt " " fmt " " fmt " " fmt " " fmt "\n",\ data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2115: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(fmt "\n", ++a);\ data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2116: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(fmt "\n", a++);\ data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2117: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(fmt "\n", a);\ data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2161: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("float: " FLOAT_FMT, prefix ## retf(42.123456789));\ data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2460: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(LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", a, b); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2461: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(LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " %Lx\n", data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2467: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(LONG_LONG_FORMAT "\n", a); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2510: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(LONG_LONG_FORMAT "\n", 0x123456789LLU); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2610:17: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(LONG_LONG_FORMAT, ll); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2650:5: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vprintf(fmt, args); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2788:28: [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). printf("alloca: %s\n", strcpy(alloca(strlen(demo)+1),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:4027:15: [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 pv(m) printf(sizeof (s->m + 0) == 8 ? "%016llx\n" : "%02x\n", s->m) data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/03_struct.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/101_cleanup.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/102_alignas.c:17:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/104+_inline.c:6: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. int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/105_local_extern.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/107_stack_safe.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:127: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(&a[7], &a[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:129: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(&a[0], &b[7]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:131: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(&a[0], &a[1]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:133: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(&a[2], &a[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:151: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(&a[7], &a[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:153: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(&a[0], &b[3]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:155: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(&a[0], &a[4]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:157: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(&a[3], &a[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:154:12: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. tst_adr(&sprintf); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/11_precedence.c:2:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/33_ternary_op.c:2:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/42_function_pointer.c:13:49: [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. int (*fprintfptr)(FILE *, const char *, ...) = &fprintf; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/60_errors_and_warnings.c:253: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. int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/60_errors_and_warnings.c:272: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. int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/60_errors_and_warnings.c:333: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. int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/82_attribs_position.c:33:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf (const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/84_hex-float.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/85_asm-outside-function.c:7:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf (const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/87_dead_code.c:4:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf (const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/88_codeopt.c:3:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf (const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/89_nocode_wanted.c:1:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *format, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/91_ptr_longlong_arith32.c:1: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. int printf(const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/92_enum_bitfield.c:33:12: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. extern int printf(const char *, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/93_integer_promotion.c:3: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. int printf(const char*, ...); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/95_bitfields.c:111:1: [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("\n\n" + 2*top); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/95_bitfields.c:197: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(sizeof (s->m + 0) == 8 ? " %016llx" : " %02x", s->m) data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/95_bitfields.c:201:9: [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("\n---- TEST %d%s%s%s ----\n" + top, \ data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:304:17: [4] (tmpfile) mktemp: Temporary file race condition (CWE-377). char *__cdecl mktemp(char *); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:359:15: [4] (race) access: This usually indicates a security flaw. If an attacker can change anything along the path between the call to access() and the file's actual use (e.g., by moving files), the attacker can exploit the race condition (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid()) and try to open the file directly. int __cdecl access(const char *_Filename,int _AccessMode); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:371:17: [4] (tmpfile) mktemp: Temporary file race condition (CWE-377). char *__cdecl mktemp(char *_TemplateName); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:391:7: [4] (misc) getlogin: It's often easy to fool getlogin. Sometimes it does not work at all, because some program messed up the utmp file. Often, it gives only the first 8 characters of the login name. The user currently logged in on the controlling tty of our program need not be the user who started it. Avoid getlogin() for security-related purposes (CWE-807). Use getpwuid(geteuid()) and extract the desired information instead. char *getlogin(void); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:404:9: [4] (race) access: This usually indicates a security flaw. If an attacker can change anything along the path between the call to access() and the file's actual use (e.g., by moving files), the attacker can exploit the race condition (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid()) and try to open the file directly. #define access(__f,__m) __mingw_access (__f, __m) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:69:15: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl system(const char *_Command); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:136:15: [4] (shell) execl: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl execl(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:137:15: [4] (shell) execle: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl execle(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:138:15: [4] (shell) execlp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl execlp(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:141:22: [4] (shell) execl: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. intptr_t __cdecl execl(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:142:20: [4] (shell) execle: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. intptr_t __cdecl execle(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:143:20: [4] (shell) execlp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. intptr_t __cdecl execlp(const char *_Filename,const char *_ArgList,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:156:15: [4] (shell) execv: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl execv(const char *_Filename,const char *const _ArgList[]); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:158:15: [4] (shell) execvp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl execvp(const char *_Filename,const char *const _ArgList[]); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:161:20: [4] (shell) execv: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. intptr_t __cdecl execv(const char *_Filename,const char *const _ArgList[]); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:163:20: [4] (shell) execvp: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. intptr_t __cdecl execvp(const char *_Filename,const char *const _ArgList[]); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:181:15: [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. int __cdecl fprintf(FILE *_File,const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:187:15: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl fscanf(FILE *_File,const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:207:39: [4] (shell) popen: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. #if !defined(NO_OLDNAMES) && !defined(popen) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:208:9: [4] (shell) popen: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. #define popen _popen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:211:15: [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. int __cdecl printf(const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:227:15: [4] (buffer) scanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl scanf(const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:234:15: [4] (buffer) sscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl sscanf(const char *_Src,const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:239:15: [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. int __cdecl vfprintf(FILE *_File,const char *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:240:15: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl vprintf(const char *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:244:9: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # undef vsnprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:245:9: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # undef snprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:252:15: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int __cdecl vsnprintf(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:253:23: [4] (format) _snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. _CRTIMP int __cdecl _snprintf(char *_Dest,size_t _Count,const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:255:15: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. int __cdecl sprintf(char *_Dest,const char *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:256:15: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. int __cdecl vsprintf(char *_Dest,const char *_Format,va_list _Args); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:258:15: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. int __cdecl snprintf(char* s, size_t n, const char* format, ...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:259:28: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. __CRT_INLINE int __cdecl vsnprintf (char* s, size_t n, const char* format,va_list arg) { data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:262:15: [4] (buffer) vscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vscanf(const char * Format, va_list argp); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:263:15: [4] (buffer) vfscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vfscanf (FILE * fp, const char * Format,va_list argp); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:264:15: [4] (buffer) vsscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vsscanf (const char * _Str,const char * Format,va_list argp); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:272:10: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define vsnprintf __mingw_vsnprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:274:10: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # ifndef snprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:275:10: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. # define snprintf __mingw_snprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:306:15: [4] (format) fwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:307:15: [4] (format) wprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl wprintf(const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:309:15: [4] (format) vfwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:310:15: [4] (format) vwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:311:23: [4] (format) swprintf: Potential format string problem (CWE-134). Make format string constant. _CRTIMP int __cdecl swprintf(wchar_t*, const wchar_t*, ...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:312:23: [4] (format) vswprintf: Potential format string problem (CWE-134). Make format string constant. _CRTIMP int __cdecl vswprintf(wchar_t*, const wchar_t*,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:320:15: [4] (buffer) vwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vwscanf (const wchar_t *, va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:321:15: [4] (buffer) vfwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:322:15: [4] (buffer) vswscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:333:9: [4] (buffer) swprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define swprintf _swprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:334:9: [4] (buffer) vswprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define vswprintf _vswprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:342:15: [4] (buffer) fwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl fwscanf(FILE *_File,const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:345:15: [4] (buffer) wscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl wscanf(const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:391:15: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int __cdecl system(const char *_Command); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:45:17: [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). char *__cdecl strcpy(char *_Dest,const char *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:46:17: [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). char *__cdecl strcat(char *_Dest,const char *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:106:20: [4] (buffer) wcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:109:20: [4] (buffer) wcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:19:9: [4] (buffer) _ftcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define _ftcscat _tcscat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:19:18: [4] (buffer) _tcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define _ftcscat _tcscat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:21:9: [4] (buffer) _ftcscpy: 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). #define _ftcscpy _tcscpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:21:18: [4] (buffer) _tcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define _ftcscpy _tcscpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:68:17: [4] (buffer) _tccpy: 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). #define _ftccpy _tccpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:125:18: [4] (format) wprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _tprintf wprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:137:9: [4] (format) _ftprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _ftprintf fwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:137:19: [4] (format) fwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _ftprintf fwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:141:9: [4] (buffer) _stprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _stprintf swprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:141:19: [4] (buffer) swprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _stprintf swprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:149:9: [4] (format) _sntprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define _sntprintf _snwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:151:9: [4] (format) _vtprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vtprintf vwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:151:19: [4] (format) vwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vtprintf vwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:155:9: [4] (format) _vftprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vftprintf vfwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:155:20: [4] (format) vfwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vftprintf vfwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:159:9: [4] (buffer) _vstprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _vstprintf vswprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:159:20: [4] (buffer) vswprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _vstprintf vswprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:167:9: [4] (format) _vsntprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define _vsntprintf _vsnwprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:170:9: [4] (buffer) _tscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _tscanf wscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:170:17: [4] (buffer) wscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _tscanf wscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:174:9: [4] (buffer) _ftscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _ftscanf fwscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:174:18: [4] (buffer) fwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _ftscanf fwscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:241:9: [4] (buffer) _tcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define _tcscat wcscat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:241:17: [4] (buffer) wcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define _tcscat wcscat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:243:9: [4] (buffer) _tcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define _tcscpy wcscpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:243:17: [4] (buffer) wcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define _tcscpy wcscpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:412:9: [4] (buffer) _tccpy: 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). #define _tccpy(_pc1,_cpc2) ((*(_pc1) = *(_cpc2))) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:497:18: [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 _tprintf printf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:509:9: [4] (format) _ftprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _ftprintf fprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:509:19: [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 _ftprintf fprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:513:9: [4] (buffer) _stprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _stprintf sprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:513:19: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _stprintf sprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:521:9: [4] (format) _sntprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define _sntprintf _snprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:521:20: [4] (format) _snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define _sntprintf _snprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:523:9: [4] (format) _vtprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vtprintf vprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:523:19: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vtprintf vprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:527:9: [4] (format) _vftprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define _vftprintf vfprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:527:20: [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. #define _vftprintf vfprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:531:9: [4] (buffer) _vstprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _vstprintf vsprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:531:20: [4] (buffer) vsprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define _vstprintf vsprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:539:9: [4] (format) _vsntprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define _vsntprintf _vsnprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:542:9: [4] (buffer) _tscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _tscanf scanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:542:17: [4] (buffer) scanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _tscanf scanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:546:9: [4] (buffer) _ftscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _ftscanf fscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:546:18: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _ftscanf fscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:548:18: [4] (buffer) sscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. #define _stscanf sscanf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:613:9: [4] (buffer) _tcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define _tcscat strcat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:613:17: [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). #define _tcscat strcat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:614:9: [4] (buffer) _tcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define _tcscpy strcpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:614:17: [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). #define _tcscpy strcpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:643:18: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. #define _tsystem system data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:704:18: [4] (race) access: This usually indicates a security flaw. If an attacker can change anything along the path between the call to access() and the file's actual use (e.g., by moving files), the attacker can exploit the race condition (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid()) and try to open the file directly. #define _taccess access data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:815:19: [4] (buffer) _mbsncpy: 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). #define _tcsnccpy _mbsncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:834:9: [4] (buffer) _tccpy: 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). #define _tccpy _mbccpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:834:16: [4] (buffer) _mbccpy: 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). #define _tccpy _mbccpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:896:24: [4] (buffer) _tccpy: 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). _CRTIMP void __cdecl _tccpy(char *_DstCh,const char *_SrcCh); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1031:9: [4] (buffer) _tccpy: 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). #define _tccpy(_pc1,_cpc2) (*(_pc1) = *(_cpc2)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:575:15: [4] (format) fwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:576:15: [4] (format) wprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl wprintf(const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:578:15: [4] (format) vfwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:579:15: [4] (format) vwprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:580:23: [4] (format) swprintf: Potential format string problem (CWE-134). Make format string constant. _CRTIMP int __cdecl swprintf(wchar_t*, const wchar_t*, ...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:581:23: [4] (format) vswprintf: Potential format string problem (CWE-134). Make format string constant. _CRTIMP int __cdecl vswprintf(wchar_t*, const wchar_t*,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:589:15: [4] (buffer) vwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vwscanf (const wchar_t *, va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:590:15: [4] (buffer) vfwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:591:15: [4] (buffer) vswscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:628:9: [4] (buffer) swprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define swprintf _swprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:629:9: [4] (buffer) vswprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. #define vswprintf _vswprintf data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:638:15: [4] (buffer) fwscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl fwscanf(FILE *_File,const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:644:15: [4] (buffer) wscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. int __cdecl wscanf(const wchar_t *_Format,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:739:20: [4] (buffer) wcscat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:742:20: [4] (buffer) wcscpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1414:26: [4] (shell) WinExec: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. WINBASEAPI UINT WINAPI WinExec(LPCSTR lpCmdLine,UINT uCmdShow); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1564:18: [4] (buffer) lstrcpynW: 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). #define lstrcpyn lstrcpynW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1565:9: [4] (buffer) lstrcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define lstrcpy lstrcpyW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1565:17: [4] (buffer) lstrcpyW: 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). #define lstrcpy lstrcpyW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1566:9: [4] (buffer) lstrcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define lstrcat lstrcatW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1566:17: [4] (buffer) lstrcatW: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define lstrcat lstrcatW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1572:18: [4] (buffer) lstrcpynA: 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). #define lstrcpyn lstrcpynA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1573:9: [4] (buffer) lstrcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using a function version that stops copying at the end of the buffer. #define lstrcpy lstrcpyA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1573:17: [4] (buffer) lstrcpyA: 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). #define lstrcpy lstrcpyA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1574:9: [4] (buffer) lstrcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define lstrcat lstrcatA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1574:17: [4] (buffer) lstrcatA: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). #define lstrcat lstrcatA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1587:27: [4] (buffer) lstrcpynA: 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). WINBASEAPI LPSTR WINAPI lstrcpynA(LPSTR lpString1,LPCSTR lpString2,int iMaxLength); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1588:28: [4] (buffer) lstrcpynW: 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). WINBASEAPI LPWSTR WINAPI lstrcpynW(LPWSTR lpString1,LPCWSTR lpString2,int iMaxLength); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1589:27: [4] (buffer) lstrcpyA: 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). WINBASEAPI LPSTR WINAPI lstrcpyA(LPSTR lpString1,LPCSTR lpString2); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1590:28: [4] (buffer) lstrcpyW: 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). WINBASEAPI LPWSTR WINAPI lstrcpyW(LPWSTR lpString1,LPCWSTR lpString2); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1591:27: [4] (buffer) lstrcatA: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). WINBASEAPI LPSTR WINAPI lstrcatA(LPSTR lpString1,LPCSTR lpString2); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1592:28: [4] (buffer) lstrcatW: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). WINBASEAPI LPWSTR WINAPI lstrcatW(LPWSTR lpString1,LPCWSTR lpString2); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2429:28: [4] (access) ImpersonateNamedPipeClient: If this call fails, the program could fail to drop heightened privileges (CWE-250). Make sure the return value is checked, and do not continue if a failure is reported. WINADVAPI WINBOOL WINAPI ImpersonateNamedPipeClient(HANDLE hNamedPipe); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2432:28: [4] (access) SetThreadToken: If this call fails, the program could fail to drop heightened privileges (CWE-250). Make sure the return value is checked, and do not continue if a failure is reported. WINADVAPI WINBOOL WINAPI SetThreadToken (PHANDLE Thread,HANDLE Token); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2614:28: [4] (access) ImpersonateLoggedOnUser: If this call fails, the program could fail to drop heightened privileges (CWE-250). Make sure the return value is checked, and do not continue if a failure is reported. WINADVAPI WINBOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:82:32: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. #define INIT_SEM() InitializeCriticalSection(&bounds_sem) data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:84:32: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. #define WAIT_SEM() EnterCriticalSection(&bounds_sem) data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:807:26: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. print_warn_ptr_add = getenv ("TCC_BOUNDS_WARN_POINTER_ADD") != NULL; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:808:19: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. print_calls = getenv ("TCC_BOUNDS_PRINT_CALLS") != NULL; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:809:18: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. print_heap = getenv ("TCC_BOUNDS_PRINT_HEAP") != NULL; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:810:23: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. print_statistic = getenv ("TCC_BOUNDS_PRINT_STATISTIC") != NULL; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:811:19: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. never_fatal = getenv ("TCC_BOUNDS_NEVER_FATAL") != NULL; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:130:9: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. InitializeCriticalSection(&tcc_cr), tcc_sem_init = 1; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:131:5: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. EnterCriticalSection(&tcc_cr); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:207:12: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. path = getenv("C_INCLUDE_PATH"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:211:12: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. path = getenv("CPATH"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:215:12: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. path = getenv("LIBRARY_PATH"); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2428:38: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. const char *elfint = getenv("LD_SO"); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:860:46: [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. dllref->handle = LoadLibrary(dllref->name); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:237:17: [3] (tmpfile) tmpnam: Temporary file race condition (CWE-377). char *__cdecl tmpnam(char *_Buffer); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:409:17: [3] (tmpfile) tempnam: Temporary file race condition (CWE-377). char *__cdecl tempnam(const char *_Directory,const char *_FilePrefix); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:351:17: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. char *__cdecl getenv(const char *_VarName); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:377:16: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. void __cdecl srand(unsigned int _Seed); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:665:18: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. #define _tgetenv getenv data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:684:18: [3] (tmpfile) tmpnam: Temporary file race condition (CWE-377). #define _ttmpnam tmpnam data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1330:26: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. WINBASEAPI VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1331:26: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. WINBASEAPI VOID WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1806:9: [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. #define LoadLibrary LoadLibraryW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1807:9: [3] (misc) LoadLibraryEx: 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. #define LoadLibraryEx LoadLibraryExW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1816:9: [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. #define LoadLibrary LoadLibraryA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1817:9: [3] (misc) LoadLibraryEx: 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. #define LoadLibraryEx LoadLibraryExA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1880:9: [3] (shell) CreateProcess: This causes a new process to execute and is difficult to use safely (CWE-78). Specify the application path in the first argument, NOT as part of the second, or embedded spaces could allow an attacker to force a different program to run. #define CreateProcess CreateProcessW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1894:9: [3] (shell) CreateProcess: This causes a new process to execute and is difficult to use safely (CWE-78). Specify the application path in the first argument, NOT as part of the second, or embedded spaces could allow an attacker to force a different program to run. #define CreateProcess CreateProcessA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1972:9: [3] (tmpfile) GetTempFileName: Temporary file race condition in certain cases (e.g., if run as SYSTEM in many versions of Windows) (CWE-377). #define GetTempFileName GetTempFileNameW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2008:9: [3] (tmpfile) GetTempFileName: Temporary file race condition in certain cases (e.g., if run as SYSTEM in many versions of Windows) (CWE-377). #define GetTempFileName GetTempFileNameA data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2487:28: [3] (misc) AddAccessAllowedAce: This doesn't set the inheritance bits in the access control entry (ACE) header (CWE-732). Make sure that you set inheritance by hand if you wish it to inherit. WINADVAPI WINBOOL WINAPI AddAccessAllowedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2603:9: [3] (shell) CreateProcessAsUser: This causes a new process to execute and is difficult to use safely (CWE-78). Especially watch out for embedded spaces. #define CreateProcessAsUser CreateProcessAsUserW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:2607:9: [3] (shell) CreateProcessAsUser: This causes a new process to execute and is difficult to use safely (CWE-78). Especially watch out for embedded spaces. #define CreateProcessAsUser CreateProcessAsUserA data/tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:881:10: [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. signed char avail[3]; /* 3 holes max with only float and double alignments */ data/tcc-0.9.27+git20200814.62c30a4a/arm-link.c:249: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 *name, buf[1024]; data/tcc-0.9.27+git20200814.62c30a4a/c67-gen.c:374:6: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen("TCC67_out.txt", "wt"); data/tcc-0.9.27+git20200814.62c30a4a/coff.h:119: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 ar_name[16]; /* file member name - `/' terminated */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:120: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 ar_date[12]; /* file member date - decimal */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:121: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 ar_uid[6]; /* file member user id - decimal */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:122: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 ar_gid[6]; /* file member group id - decimal */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:123: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 ar_mode[8]; /* file member mode - octal */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:124: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 ar_size[10]; /* file member size - decimal */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:125: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 ar_fmag[2]; /* ARFMAG - string to end header */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:133: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 s_name[8]; /* section name */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:284: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. char _n_name[SYMNMLEN]; /* old COFF version */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:290: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. char *_n_nptr[2]; /* allows for overlaying */ data/tcc-0.9.27+git20200814.62c30a4a/coff.h:407: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 x_fname[FILNMLEN]; data/tcc-0.9.27+git20200814.62c30a4a/elf.h:79: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 e_ident[EI_NIDENT]; /* Magic number and other info */ data/tcc-0.9.27+git20200814.62c30a4a/elf.h:97: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 e_ident[EI_NIDENT]; /* Magic number and other info */ data/tcc-0.9.27+git20200814.62c30a4a/examples/ex2.c:78: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). result = atoi(argv[p]); data/tcc-0.9.27+git20200814.62c30a4a/examples/ex2.c:82:25: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). tab[nb_num++] = atoi(argv[i]); data/tcc-0.9.27+git20200814.62c30a4a/examples/ex3.c:20:9: [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). n = atoi(argv[1]); data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1476: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[64]; data/tcc-0.9.27+git20200814.62c30a4a/il-gen.c:159: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 buf1[256]; data/tcc-0.9.27+git20200814.62c30a4a/il-gen.c:404: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/il-gen.c:424: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:144: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. static unsigned char __attribute__((aligned(16))) initial_pool[256]; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:289: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 exec[100]; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:860: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 line[1000]; data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:863:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fp = fopen ("/proc/self/comm", "r"); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:874:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fp = fopen ("/proc/self/maps", "r"); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1385: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. return memcpy(dest, src, n); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1623: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 (new, s, p - s); data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-dll.c:61:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[100]; data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-exe.c:22: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(rc, p, offsetof(rt_context, next)); data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-exe.c:40: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, s, l); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:21: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. void *memcpy(void*,void*,__SIZE_TYPE__); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:42: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:50: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:64: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:72: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(f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:98: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(&x, &f, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:182: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:382: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(&a, &f, 4); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:398: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(&fx, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:407: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(&a, &f, 8); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:422: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(&fx, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:453: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(&fx, &x, 4); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:485: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(&fx, &x, 8); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:566: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:591: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:610: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:630: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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:637: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(&a, &fa, 16); data/tcc-0.9.27+git20200814.62c30a4a/lib/lib-arm64.c:638: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(&b, &fb, 16); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:92: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 path[1024], *p; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:104: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[1000]; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:196:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(out, in, num); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:288: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 file_name[MEM_DEBUG_FILE_LEN + 1]; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:530: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[2048]; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:681:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(filename, O_RDONLY | O_BINARY); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:717: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(file->buffer, str, len); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:815: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 buffer[32]; int a,b,c; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:817:9: [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(buffer, "%d", a*10000 + b*100 + c); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1228: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1305: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[256]; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1778:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(filename, O_RDONLY | O_BINARY); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1891:33: [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). s->rt_num_callers = atoi(optarg); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1921:31: [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). s->g_debug |= atoi(optarg); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1991:25: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). if (x = atoi(optarg), x != 32 && x != 64) data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:2023:24: [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). s->Pflag = atoi(optarg) + 1; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:2050:27: [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). s->optimize = atoi(optarg); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:223: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:233: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(ext, ".dll"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:236: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(ext, ".exe"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:240: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(ext, ".o"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:242: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(buf, "a.out"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.c:307:24: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). ppfp = fopen(s->outfile, "w"); data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:433: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[1]; data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:562: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 name[1]; /* section name */ data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:568: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 name[1]; data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:618: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 filename[1024]; /* filename */ data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:620: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 unget[4]; data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:621: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 buffer[1]; /* extra size for CH_EOB char */ data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:655: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 filename[1]; data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:664: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 filename[1]; /* path specified in #include */ data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:680: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 asm_str[16]; /* computed asm string for operand */ data/tcc-0.9.27+git20200814.62c30a4a/tcc.h:943: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 name[1]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:29: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[64]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:60: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 newname[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:114: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[100]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:756:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char sname[64]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:773:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char filename[512]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:791:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ident[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:858:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char sname[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1026: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(file->buffer, str, len); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:34:1: [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 Func[MAX_FUNCS][MAX_FUNC_NAME_LENGTH]; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:35:1: [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 AssociatedFile[MAX_FUNCS][MAX_FUNC_NAME_LENGTH]; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:197:6: [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 func_name[MAX_FUNC_NAME_LENGTH], data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:200: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. const char *incl_files[INCLUDE_STACK_SIZE]; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:256: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(func_name, str, len); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:257: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(Func[nFuncs], str, len); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:382:6: [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 func_name[128], last_func_name[128]; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:384: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. const char *incl_files[INCLUDE_STACK_SIZE]; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:430: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(func_name, str, len); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:588:3: [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(csym._n._n_name, ".bf"); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:608:3: [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(csym._n._n_name, ".ef"); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:870: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 name2[9]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:490: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[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:727: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[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:905: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(s->data, new_syms, nb_syms * sizeof(ElfW(Sym))); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1112: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 plt_name[100]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1183: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(plt_name, name, len); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1184: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(plt_name + len, "@plt"); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1308: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1325: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1477: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2291:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, mode); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2389: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, arm_attr, sizeof(arm_attr)); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2930: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 ar_name[16]; /* name of this member */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2931: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 ar_date[12]; /* file mtime */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2932: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 ar_uid[6]; /* owner uid; printed as decimal */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2933: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 ar_gid[6]; /* owner gid; printed as decimal */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2934: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 ar_mode[8]; /* file mode, printed as octal */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2935: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 ar_size[10]; /* file size, printed as decimal */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2936: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 ar_fmag[2]; /* should contain ARFMAG */ data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3475: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 filename[1024], libname[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3555: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 cmd[64]; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3556: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 filename[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:359:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(p, &d, sizeof(double)); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:403:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[512]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:895: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 buf1[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2830: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 buf1[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2920:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf2[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2961: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 buf1[256], buf2[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2969: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 buf1[256], buf2[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5526: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(ptr, funcname, len); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5930:6: [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[60]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5973: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. char str[100]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6341: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. static unsigned char prec[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7471: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(dst, src, elem_size); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7607:21: [2] (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, &vtop->c.ld, 10); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7767:23: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(sec->data + c, initstr.data, nb); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:8306: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. char buf[500]; data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:18:5: [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 atoi(const char *nptr); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:29:7: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *fopen(const char *path, const char *mode); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:64: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. void *memcpy(void *dest, const void *src, size_t n); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:96: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 segname[16]; /* segment name */ data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:108: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 sectname[16]; /* name of this section */ data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:109: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 segname[16]; /* segment this section goes in */ data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:585: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(str, "/usr/lib/dyld"); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:797:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, mode); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:850: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 buf[sizeof(struct mach_header_64)]; data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:922:25: [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). int subfd = open(name, O_RDONLY | O_BINARY); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:321: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 name[32]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:385: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 buffer[200]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:490: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[256]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:615:13: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). pf.op = fopen(pe->filename, "wb"); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.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(psh->Name, sh_name, umin(strlen(sh_name), sizeof psh->Name)); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:914: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[260]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:969: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(tcc_fileextension(buf), ".def"); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:970:10: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). op = fopen(buf, "wb"); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1272: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 buffer[100]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1469:9: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen(fname, "w"); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1565:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(filename, O_RDONLY | O_BINARY); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1705: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 line[400], dllname[80], *p, *x; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1778: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[10]; data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1817: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(p, uw_info, sizeof uw_info); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:43: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 token_buf[STRING_MAX_SIZE + 1]; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:47: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. static unsigned char isidnum_table[256 - CH_EOF]; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:159: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 file_name[TAL_DEBUG_FILE_LEN + 1]; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:264:24: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. if (p) memcpy(ret, p, header->size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:283:20: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. if (p) memcpy(ret, p, header->size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:304: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. if (p) memcpy(ret, p, header->size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:453: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(ts->str, str, len); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:472:41: [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. h = TOK_HASH_FUNC(h, ((unsigned char *)str)[i]); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:506:9: [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(p, "%u", (unsigned)cv->i); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:508:9: [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(p, "%llu", (unsigned long long)cv->i); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:560:16: [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. return strcpy(p, "..."); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:562:16: [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. return strcpy(p, "<<="); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:564:16: [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. return strcpy(p, ">>="); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:566:16: [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. return strcpy(p, "<eof>"); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:581:13: [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(cstr_buf.data, "<%02x>", v); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:591:13: [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(p, "L.%u", v - SYM_FIRST_ANOM); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1078: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(str, s->str, s->len * sizeof(int)); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1180: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(&str[len + 1], cv->str.data, cv->str.size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1755: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[1024], *q; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1845:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf1[sizeof file->filename]; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:2242:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(p, s, len); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3133: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 const ab_month_name[12][4] = data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3153: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(file->buffer, cstr.data, cstr.size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3308: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[32]; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3768: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(file->buffer, cstr.data, cstr.size); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3993: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 white[400]; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:87:14: [2] (tmpfile) mkstemp: Potential for temporary file vulnerability in some circumstances. Some older Unix-like systems create temp files with permission to write by all by default, so be sure to set the umask to override this. Also, some older Unix systems might fail to use O_EXCL when opening the file, so make sure that O_EXCL is used by the library (CWE-377). int fd = mkstemp(tmpfname); data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:296: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(ptr, s->data, length); data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:387: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 func_name[128]; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:389: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 *incl_files[INCLUDE_STACK_SIZE]; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:531: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 skip[100]; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:548: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(skip, a, b - a), skip[b - a] = 0; data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:729:25: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static unsigned char stack[SIGSTKSZ] __attribute__((aligned(16))); data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:894:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). TCCSYM(fopen) data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:37: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 ar_name[16]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:38: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 ar_date[12]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:39: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 ar_uid[6]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:40: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 ar_gid[6]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:41: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 ar_mode[8]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:42: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 ar_size[10]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:43: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 ar_fmag[2]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:101: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 tfile[260], stmp[20]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:131:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fh = fopen(argv[i_lib], "wb")) == NULL) data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:138:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fo = fopen(tfile, "wb+")) == NULL) data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:146: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(&arhdro.ar_mode, "100666", 6); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:155:19: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fi = fopen(argv[i_obj], "rb")) == NULL) { data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:233: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(arhdro.ar_name, name, istrlen); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:235:9: [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(stmp, "%-10d", fsize); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:236: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(&arhdro.ar_size, stmp, 10); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:249: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(stmp, "%-10d", (int)(strpos + (funccnt+1) * sizeof(int))); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:250: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(&arhdr.ar_size, stmp, 10); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:307: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 infile[260]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:308: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 outfile[260]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:315: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 path[260]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:355: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(q, ".def"); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:377:10: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). op = fopen(outfile, "wb"); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:454: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(d, s0, sl = s - s0), d += sl; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:455: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(d, r, rl), d += rl; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:484: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 program[4096]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:521: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[1024]; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:535:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). depout = fopen(filename, "w"); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:11:1: [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 tab3[256]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:123: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 tab[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:134: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 tab[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:135: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 tab1[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:138: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(tab, tab1, 10); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:146: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 tab[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:166: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 tab[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:209: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(p,"12345678901234"); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:225: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(p,"12345678901234"); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:291:17: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). index = atoi(argv[1]) - 1; data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:192: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 *argv[30], b[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:195: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(b, "%d", F(n)); data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:297:23: [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). printf(" %d", fib(atoi(argv[1]), 2)); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:19: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 l[1000], *p, l2[1000], *q; data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:26:10: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fp = fopen(argv[1], "rb"); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:27:10: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). op = fopen(argv[2], "wb"); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:75:19: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. __BOTH(void*, memcpy, (void *, const void*, __SIZE_TYPE__)) data/tcc-0.9.27+git20200814.62c30a4a/tests/pp/02.c:18:1: [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[2][6] = { str(hello), str() }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:352:1: [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_x[2] = { "xy" "z"[2], 0 }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:355:25: [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. struct str_SS {unsigned char a[3], b; }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:362: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 a3[2] = { "p" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:363: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 a4[2] = { "ab" "c"[2], 0 }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:370: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_x[2] = { "xy" "z"[2], 0 }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:667: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[3]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:719: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 a[50]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:952: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 a[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:957: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 b[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:1574: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 tab[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:1670:1: [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 sinit14[10] = { "abc" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:1752: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 linit14[10] = "abc"; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2784: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(p,"123456789012345"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2794: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 ca[10], *cp = ca-1; data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3517:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[128]; data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.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(&f, &x, 4); data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.c:40: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(&f, &x, 8); data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.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(&f, &x, 16); data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.c:54: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(&x, &f, 4); data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.c:61: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(&x, &f, 8); data/tcc-0.9.27+git20200814.62c30a4a/tests/testfp.c:68: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(&x, &f, 16); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:92: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 pad1[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:93: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 a[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:94: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 pad2[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:95: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 b[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:96: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 pad3[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:107: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(&a[1],&b[0],10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:109: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(&a[0],&b[1],10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.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(&a[0],&a[3],4); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:113: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(&a[3],&a[0],4); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:48: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. struct big_struct { char a[262144]; }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:57:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:67: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 tmp[100]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/21_char_array.c:19:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char destarray[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:6:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char a[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:8:4: [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(a, "hello"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:35: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(&a[2], a, 2); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/29_array_address.c:6:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char a[10]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/29_array_address.c:7:4: [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(a, "abcdef"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/32_led.c:226:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[5*MAX_DIGITS]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/32_led.c:240:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[5*MAX_DIGITS]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/32_led.c:249:8: [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). x = atol(argv[1]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/33_ternary_op.c:4:1: [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 arr[1]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/37_sprintf.c:5:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char Buf[100]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/37_sprintf.c:10:7: [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, "->%02d<-\n", Count); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:5:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *f = fopen("fred.txt", "w"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:9:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char freddy[7]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:10:8: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen("fred.txt", "r"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:21:8: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen("fred.txt", "r"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:32:8: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen("fred.txt", "r"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:43:8: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen("fred.txt", "r"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/46_grep.c:96:1: [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 *pp, lbuf[LMAX], pbuf[PMAX]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/46_grep.c:558:20: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((f=fopen(p, "r")) == NULL) data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:8:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s1 { char x[1]; } s1 = { "0" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:9:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s2 { char x[2]; } s2 = { "12" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:10:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s3 { char x[3]; } s3 = { "345" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:11:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s4 { char x[4]; } s4 = { "6789" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:12:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s5 { char x[5]; } s5 = { "abcde" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:13:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s6 { char x[6]; } s6 = { "fghijk" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:14:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s7 { char x[7]; } s7 = { "lmnopqr" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:15:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s8 { char x[8]; } s8 = { "stuvwxyz" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:16:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct s9 { char x[9]; } s9 = { "ABCDEFGHI" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:17: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. struct s10 { char x[10]; } s10 = { "JKLMNOPQRS" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:18: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. struct s11 { char x[11]; } s11 = { "TUVWXYZ0123" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:19: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. struct s12 { char x[12]; } s12 = { "456789abcdef" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:20: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. struct s13 { char x[13]; } s13 = { "ghijklmnopqrs" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:21: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. struct s14 { char x[14]; } s14 = { "tuvwxyzABCDEFG" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:22: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. struct s15 { char x[15]; } s15 = { "HIJKLMNOPQRSTUV" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:23: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. struct s16 { char x[16]; } s16 = { "WXYZ0123456789ab" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/73_arm64.c:24: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. struct s17 { char x[17]; } s17 = { "cdefghijklmnopqrs" }; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/78_vla_label.c:6: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 test[argc]; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/80_flexarray.c:9: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 s[9]="nonono"; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/80_flexarray.c:14: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 s[9]="nonono"; data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/80_flexarray.c:19:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char s[9]="nonono"; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:20: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 *array_ptrs[LOOP_COUNT]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:23: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 test[n]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:33: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 *array_ptrs[LOOP_COUNT]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:37: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 test[n]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:47: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 test2[n]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:53: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 test[n]; data/tcc-0.9.27+git20200814.62c30a4a/tests/vla_test.c:58: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 test2[n]; data/tcc-0.9.27+git20200814.62c30a4a/win32/examples/fib.c:21:6: [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). n = atoi(argv[1]); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/dirent.h:62: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 dd_name[1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/dirent.h:110:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t dd_name[1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:35: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 name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:46: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 name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:55: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 name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:64: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 name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:102:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:113:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:122:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:131:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:372:15: [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). int __cdecl open(const char *_Filename,int _OpenFlag,...); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/memory.h:28: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. void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:179:17: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *__cdecl fopen(const char *_Filename,const char *_Mode); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:236:17: [2] (tmpfile) tmpfile: Function tmpfile() has a security flaw on some systems (e.g., older System V systems) (CWE-377). FILE *__cdecl tmpfile(void); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:58: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 ld[10]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:83: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 ld12[12]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:152: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. _CRTIMP char *_sys_errlist[1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:336:15: [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 __cdecl atoi(const char *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:338:16: [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). long __cdecl atol(const char *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:439:23: [2] (integer) _wtoi: 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). _CRTIMP int __cdecl _wtoi(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:447:27: [2] (integer) _wtoi64: 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). _CRTIMP __int64 __cdecl _wtoi64(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdlib.h:564:71: [2] (integer) _wtoi64: 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). __CRT_INLINE long long __cdecl wtoll (const wchar_t * _w) { return _wtoi64 (_w); } data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:37: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. void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:219:16: [2] (integer) _wtoi: 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). #define _tstoi _wtoi data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:220:18: [2] (integer) _wtoi64: 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). #define _tstoi64 _wtoi64 data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:234:15: [2] (integer) _wtoi: 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). #define _ttoi _wtoi data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:237:17: [2] (integer) _wtoi64: 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). #define _ttoi64 _wtoi64 data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:588:16: [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). #define _tstol atol data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:589:16: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). #define _tstoi atoi data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:602:15: [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). #define _ttoi atoi data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:603:15: [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). #define _ttol atol data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:679:17: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). #define _tfopen fopen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:703:16: [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). #define _topen open data/tcc-0.9.27+git20200814.62c30a4a/win32/include/time.h:125:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. __MINGW_IMPORT char * _tzname[2]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/time.h:248:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. __MINGW_IMPORT char *tzname[2]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:87:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:98:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:107:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:116:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t name[260]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:704:23: [2] (integer) _wtoi: 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). _CRTIMP int __cdecl _wtoi(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:712:27: [2] (integer) _wtoi64: 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). _CRTIMP __int64 __cdecl _wtoi64(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:852: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. void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _MaxCount); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:857:104: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. __CRT_INLINE wchar_t *__cdecl wmemcpy(wchar_t *_S1,const wchar_t *_S2,size_t _N) { return (wchar_t *)memcpy(_S1,_S2,_N*sizeof(wchar_t)); } data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/guiddef.h:12: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 Data4[8 ]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:68:9: [2] (buffer) CopyMemory: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. #define CopyMemory RtlCopyMemory data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/wingdi.h:2012: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 Buffer[1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnls.h:701:25: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). WINBASEAPI int WINAPI MultiByteToWideChar(UINT CodePage,DWORD dwFlags,LPCSTR lpMultiByteStr,int cbMultiByte,LPWSTR lpWideCharStr,int cchWideChar); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnt.h:78:29: [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 C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnt.h:5043:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. return memcpy(dst,src,size); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnt.h:5045: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. #define memcpy memcpy_inline data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winnt.h:5052:50: [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 RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:242: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 sin_zero[8]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:255: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 szDescription[WSADESCRIPTION_LEN+1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:256: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 szSystemStatus[WSASYS_STATUS_LEN+1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:258: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 szDescription[WSADESCRIPTION_LEN+1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:259: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 szSystemStatus[WSASYS_STATUS_LEN+1]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:353: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 sa_data[14]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:364: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 __ss_pad1[_SS_PAD1SIZE]; data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:367: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 __ss_pad2[_SS_PAD2SIZE]; data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1210:24: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). t = tok_alloc(s+1, strlen(s)-1)->tok; data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1491:31: [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). get_asm_sym(tok_alloc(name, strlen(name))->tok, sv->sym); data/tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1710:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ts = tok_alloc(str, strlen(str)); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:258:34: [1] (free) memalign: On some systems (though not Linux-based systems) an attempt to free() results from memalign() may fail. This may, on a few systems, be exploitable. Also note that memalign() may not check that the boundary parameter is correct (CWE-676). Use posix_memalign instead (defined in POSIX's 1003.1d). Don't switch to valloc(); it is marked as obsolete in BSD 4.3, as legacy in SUSv2, and is no longer defined in SUSv3. In some cases, malloc()'s alignment may be sufficient. #define BOUND_MEMALIGN(a,b) memalign(a,b) data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:869:13: [1] (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 character. strcat (exec, ":"); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:955:51: [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). tree = splay_insert((size_t) argv[i], strlen (argv[i]) + 1, tree); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:963: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). argv[i], (unsigned long)(strlen (argv[i]) + 1)); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:975:46: [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). tree = splay_insert((size_t) *p, strlen (*p) + 1, tree); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:986:45: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). *p, (unsigned long)(strlen (*p) + 1)); data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1152:7: [1] (free) memalign: On some systems (though not Linux-based systems) an attempt to free() results from memalign() may fail. This may, on a few systems, be exploitable. Also note that memalign() may not check that the boundary parameter is correct (CWE-676). Use posix_memalign instead (defined in POSIX's 1003.1d). Don't switch to valloc(); it is marked as obsolete in BSD 4.3, as legacy in SUSv2, and is no longer defined in SUSv3. In some cases, malloc()'s alignment may be sufficient. void *memalign(size_t size, size_t align) data/tcc-0.9.27+git20200814.62c30a4a/lib/bcheck.c:1527:12: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). return strncpy(dest, src, n); data/tcc-0.9.27+git20200814.62c30a4a/lib/bt-exe.c:37: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). int l = strlen(s); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:188: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). len = strlen(buf); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:264:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ptr = tcc_malloc(strlen(str) + 1); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:329: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). ofs = strlen(file) - MEM_DEBUG_FILE_LEN; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:330:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(header->file_name, file + (ofs > 0 ? ofs : 0), MEM_DEBUG_FILE_LEN); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:400:28: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ptr = tcc_malloc_debug(strlen(str) + 1, file, line); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:500: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). len = strlen(buf); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:715:23: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int len = strlen(str); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1441: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). *str = s2 ? s2++ : (s2 = s1 + strlen(s1)); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1451: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). p[l = strlen(p)] = sep, ++l; data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1729:49: [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). struct filespec *f = tcc_malloc(sizeof *f + strlen(filename)); data/tcc-0.9.27+git20200814.62c30a4a/libtcc.c:1784:29: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). lseek(fd, 0, SEEK_SET), read(fd, p, len), close(fd); data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:33:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ts = tok_alloc(buf, strlen(buf)); data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:57: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). v = tok_alloc(name + 1, strlen(name) - 1)->tok; data/tcc-0.9.27+git20200814.62c30a4a/tccasm.c:59: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). int n = strlen(name) + 2; data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:303:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). len = strlen(str); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:493:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). len = strlen(str); data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:531:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(name) <= 8) { data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:534:42: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (pCoff_str_table - Coff_str_table + strlen(name) > data/tcc-0.9.27+git20200814.62c30a4a/tcccoff.c:543:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). pCoff_str_table += strlen(name) + 1; // skip over null data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:211:41: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). sec = tcc_mallocz(sizeof(Section) + strlen(name)); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:354: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). len = strlen(sym) + 1; data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:1180: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). len = strlen(name); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2434:51: [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). ptr = section_ptr_add(interp, 1 + strlen(elfint)); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2603:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ssize_t num = read(fd, cbuf, count-rnum); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2985:56: [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). for (p = ar_names, i = 0; i < nsyms; i++, p += strlen(p)+1) { data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3277:49: [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). dllref = tcc_mallocz(sizeof(DLLReference) + strlen(soname)); data/tcc-0.9.27+git20200814.62c30a4a/tccelf.c:3340:14: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (1 == read(s1->fd, &b, 1)) data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2857: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). buf_size -= strlen(buf); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:2858: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). buf += strlen(buf); data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5517: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). len = strlen(funcname) + 1; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5972: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). if (name && strncmp (name, "__bound_", strlen("__bound_")) == 0) { data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5977: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). t = tok_alloc(str, strlen(str))->tok; data/tcc-0.9.27+git20200814.62c30a4a/tccgen.c:8392: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). fn = tcc_malloc(sizeof *fn + strlen(file->filename)); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:35:5: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int fgetc(FILE *stream); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:37:5: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int getc(FILE *stream); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:38:5: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int getchar(void); data/tcc-0.9.27+git20200814.62c30a4a/tcclib.h:68:8: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t strlen(const char *s); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:265:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(sc->segname, name, 16); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:285:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(sec->sectname, name, 16); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:286:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(sec->segname, seg->segname, 16); data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:299:29: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int sz = (sizeof(*lc) + strlen(name) + 1 + 7) & -8; data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:581:28: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). i = (sizeof(*dyldlc) + strlen("/usr/lib/dyld") + 1 + 7) &-8; data/tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:955:49: [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). dllref = tcc_mallocz(sizeof(DLLReference) + strlen(soname)); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:685:41: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). memcpy(psh->Name, sh_name, umin(strlen(sh_name), sizeof psh->Name)); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1531:49: [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). dllref = tcc_mallocz(sizeof(DLLReference) + strlen(dllname)); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1542:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return len == read(fd, buffer, len); data/tcc-0.9.27+git20200814.62c30a4a/tccpe.c:1767: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). for (q = p; *q; q += 1 + strlen(q)) data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:255:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). { int ofs = strlen(file) - TAL_DEBUG_FILE_LEN; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:256:13: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(header->file_name, file + (ofs > 0 ? ofs : 0), TAL_DEBUG_FILE_LEN); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:351: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). len = strlen(str) + 1 + len; data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:616:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). len = read(bf->fd, bf->buffer, len); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1628:44: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). e = tcc_malloc(sizeof(CachedInclude) + strlen(filename)); data/tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1828: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). len = strlen(buf); data/tcc-0.9.27+git20200814.62c30a4a/tccrun.c:462:23: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). len = strlen(str); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:212:31: [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). istrlen = strlen(strtab + sym->st_name)+1; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:229: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). istrlen = strlen(name); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:386:14: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). q += strlen(q) + 1; data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:448:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). sl = strlen(str); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:449:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). pl = strlen(p); data/tcc-0.9.27+git20200814.62c30a4a/tcctools.c:450:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). rl = strlen(r); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:169:12: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). return strlen(tab); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:185: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). ret = strlen(p); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:197: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). ret = strlen(p); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:213:51: [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). printf("alloca : %s : %s\n", p, strcpy(alloca(strlen(demo)+1),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/boundtest.c:229:51: [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). printf("alloca : %s : %s\n", p, strcpy(alloca(strlen(demo)),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/libtcc_test_mt.c:53:5: [1] (obsolete) usleep: This C routine is considered obsolete (as opposed to the shell command by the same name). The interaction of this function with SIGALRM and other timer functions such as sleep(), alarm(), setitimer(), and nanosleep() is unspecified (CWE-676). Use nanosleep(2) or setitimer(2) instead. usleep(n * 1000); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/c2str.c:65:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). c = strlen(sr[f]); data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:79:27: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). __BOTH(__SIZE_TYPE__, strlen, (const char *)) data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:81:19: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). __BOTH(char*, strncpy, (char *, const char*, __SIZE_TYPE__)) data/tcc-0.9.27+git20200814.62c30a4a/tests/misc/tcc_predefs.h:96:26: [1] (free) memalign: On some systems (though not Linux-based systems) an attempt to free() results from memalign() may fail. This may, on a few systems, be exploitable. Also note that memalign() may not check that the boundary parameter is correct (CWE-676). Use posix_memalign instead (defined in POSIX's 1003.1d). Don't switch to valloc(); it is marked as obsolete in BSD 4.3, as legacy in SUSv2, and is no longer defined in SUSv3. In some cases, malloc()'s alignment may be sufficient. __MAYBE_REDIR(void*, memalign, (__SIZE_TYPE__, __SIZE_TYPE__)) data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:2788:42: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). printf("alloca: %s\n", strcpy(alloca(strlen(demo)+1),demo) ); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:4073:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). printf("len1=%d\n", strlen(" data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:4078: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). printf("len1=%d str[0]=%d\n", strlen(str), str[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:4080:25: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). printf("len1=%d\n", strlen(" data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:125:5: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strlen(&b[0]); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:135:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(&a[7], &a[0], 10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:137:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(&a[0], &b[7], 10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:139:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(&a[0], &a[1], 10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/112_backtrace.c:141:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(&a[2], &a[0], 10); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:11:4: [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(a, "gosh", 2); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:18: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). printf("%d\n", strlen(a)); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/28_strings.c:20:4: [1] (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 character. strcat(a, "!"); data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:22:22: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ( (InChar = fgetc(f)) != EOF) data/tcc-0.9.27+git20200814.62c30a4a/tests/tests2/40_stdio.c:33:22: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ( (InChar = getc(f)) != EOF) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:277:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(_FindData->name,fd.name,260); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:292:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(_FindData->name,fd.name,260); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:373:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int __cdecl read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/io.h:377:15: [1] (access) umask: Ensure that umask is given most restrictive possible setting (e.g., 066 or 077) (CWE-732). int __cdecl umask(int _Mode); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:168:15: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int __cdecl fgetc(FILE *_File); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:196:15: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int __cdecl getc(FILE *_File); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/stdio.h:197:15: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int __cdecl getchar(void); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:48:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t __cdecl strlen(const char *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:71:17: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. char *__cdecl strncat(char *_Dest,const char *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:75:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). char *strncpy(char *_Dest,const char *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:111:18: [1] (buffer) wcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t __cdecl wcslen(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:113:12: [1] (buffer) wcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/string.h:115:12: [1] (buffer) wcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:23:18: [1] (buffer) _tcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _ftcslen _tcslen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:24:19: [1] (buffer) _tcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _ftcsncat _tcsncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:25:19: [1] (buffer) _tcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _ftcsncpy _tcsncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:191:9: [1] (buffer) _gettc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). #define _gettc getwc data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:245:9: [1] (buffer) _tcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcslen wcslen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:245:17: [1] (buffer) wcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcslen wcslen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:247:9: [1] (buffer) _tcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsncat wcsncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:247:18: [1] (buffer) wcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsncat wcsncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:249:9: [1] (buffer) _tcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy wcsncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:249:18: [1] (buffer) wcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy wcsncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:386:18: [1] (buffer) wcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcsclen wcslen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:388:37: [1] (buffer) wcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcsclen_l(_String,_Locale) wcslen(_String) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:390:19: [1] (buffer) wcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsnccat wcsncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:392:19: [1] (buffer) wcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsnccpy wcsncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:456:58: [1] (buffer) wcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _wcsncpy_l(_Destination,_Source,_Count,_Locale) (wcsncpy(_Destination,_Source,_Count)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:457:58: [1] (buffer) wcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _wcsncat_l(_Destination,_Source,_Count,_Locale) (wcsncat(_Destination,_Source,_Count)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:553:17: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). #define _fgettc fgetc data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:562:9: [1] (buffer) _gettc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). #define _gettc getc data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:562:16: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). #define _gettc getc data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:568:19: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). #define _gettchar getchar data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:616:9: [1] (buffer) _tcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcslen strlen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:616: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). #define _tcslen strlen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:769:9: [1] (buffer) _tcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsncat _mbsnbcat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:769:18: [1] (buffer) _mbsnbcat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsncat _mbsnbcat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:771:9: [1] (buffer) _tcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy _mbsnbcpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:771:18: [1] (buffer) _mbsnbcpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy _mbsnbcpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:809:18: [1] (buffer) _mbslen: 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 _tcsclen _mbslen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:840:25: [1] (buffer) _tcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. _CRTIMP char *__cdecl _tcsncat(char *_Dst,const char *_Src,size_t _MaxCount); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:842:25: [1] (buffer) _tcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). _CRTIMP char *__cdecl _tcsncpy(char *_Dst,const char *_Src,size_t _MaxCount); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:962:9: [1] (buffer) _tcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. #define _tcsncat strncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:962:18: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. #define _tcsncat strncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:964:9: [1] (buffer) _tcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy strncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:964:18: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsncpy strncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1001:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). #define _tcsclen strlen data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1003:37: [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 _tcsclen_l(_String,_Locale) strlen(_String) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1005:19: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. #define _tcsnccat strncat data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1007:19: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _tcsnccpy strncpy data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1086:58: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define _strncpy_l(_Destination,_Source,_Count,_Locale) (strncpy(_Destination,_Source,_Count)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/tchar.h:1087:58: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. #define _strncat_l(_Destination,_Source,_Count,_Locale) (strncat(_Destination,_Source,_Count)) data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:744:18: [1] (buffer) wcslen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t __cdecl wcslen(const wchar_t *_Str); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:746:20: [1] (buffer) wcsncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, or automatically resizing strings. wchar_t *__cdecl wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/wchar.h:748:20: [1] (buffer) wcsncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). wchar_t *__cdecl wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1564:9: [1] (buffer) lstrcpyn: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define lstrcpyn lstrcpynW data/tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winbase.h:1572:9: [1] (buffer) lstrcpyn: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define lstrcpyn lstrcpynA ANALYSIS SUMMARY: Hits = 853 Lines analyzed = 103659 in approximately 2.46 seconds (42077 lines/second) Physical Source Lines of Code (SLOC) = 86390 Hits@level = [0] 1619 [1] 153 [2] 385 [3] 33 [4] 274 [5] 8 Hits@level+ = [0+] 2472 [1+] 853 [2+] 700 [3+] 315 [4+] 282 [5+] 8 Hits/KSLOC@level+ = [0+] 28.6144 [1+] 9.87383 [2+] 8.10279 [3+] 3.64626 [4+] 3.26427 [5+] 0.0926033 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.