googleprojectzero / SockFuzzer

Other
356 stars 47 forks source link

error: conflicting types for 'zone_view_startup_init' #16

Open maflcko opened 4 months ago

maflcko commented 4 months ago

This error (and similar) happen after the clang version was rolled in OSS-Fuzz.

I wonder what the best way is to fix them?

Currently, on the xnu project in OSS-Fuzz, using the latest base-builder:

FAILED: CMakeFiles/osfmk.dir/fuzz/fakes/osfmk_stubs.c.o 
/usr/local/bin/clang  -I/src/SockFuzzer/. -I/src/SockFuzzer/third_party/xnu -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/bsd -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/libkern -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/iokit -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/pexpert -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/libsa -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/security -I/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/san -I/src/SockFuzzer/third_party/xnu/EXTERNAL_HEADERS -I/src/SockFuzzer/third_party/xnu/BUILD/obj/DEBUG_X86_64/osfmk/DEBUG -I/src/SockFuzzer/third_party/xnu/osfmk -I/src/SockFuzzer/third_party/xnu/osfmk/libsa -I/src/build -O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=array-bounds,bool,builtin,enum,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unsigned-integer-overflow,unreachable,vla-bound,vptr -fno-sanitize-recover=array-bounds,bool,builtin,enum,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize=fuzzer-no-link -fno-sanitize=function -fPIC -fvisibility=hidden -fcolor-diagnostics -nostdinc -fno-builtin -fno-common -fsigned-bitfields -g -fblocks -O1 -ftrivial-auto-var-init=pattern -Wno-address-of-packed-member -Wno-unguarded-availability-new -Wno-pointer-to-int-cast -Wno-format -Wunused-result -Werror -DAH_ALL_CRYPTO -DAPPLE -DBINDFS -DCONFIG_32BIT_TELEMETRY -DCONFIG_AIO_MAX=90 -DCONFIG_AIO_PROCESS_MAX=16 -DCONFIG_AIO_THREAD_COUNT=4 -DCONFIG_APPLEDOUBLE -DCONFIG_ARCADE -DCONFIG_ATM -DCONFIG_BACKGROUND_QUEUE -DCONFIG_BASESYSTEMROOT -DCONFIG_BLOCKS -DCONFIG_COALITIONS -DCONFIG_CODE_DECRYPTION -DCONFIG_COREDUMP -DCONFIG_CSR -DCONFIG_DATALESS_FILES -DCONFIG_DELAY_IDLE_SLEEP -DCONFIG_DEV_KMEM -DCONFIG_DIRTYSTATUS_TRACKING -DCONFIG_DYNAMIC_CODE_SIGNING -DCONFIG_EXT_RESOLVER -DCONFIG_FIRMLINKS -DCONFIG_GZALLOC -DCONFIG_ICMP_BANDLIM=250 -DCONFIG_IMAGEBOOT_CHUNKLIST -DCONFIG_IMG4 -DCONFIG_IMGSRC_ACCESS -DCONFIG_IOSCHED -DCONFIG_IPC_TABLE_ENTRIES_STEPS=256 -DCONFIG_KAS_INFO -DCONFIG_KDP_INTERACTIVE_DEBUGGING -DCONFIG_KEC_FIPS -DCONFIG_KEXT_BASEMENT -DCONFIG_KEYPAGE_WP -DCONFIG_KN_HASHSIZE=64 -DCONFIG_LEDGER_INTERVAL_MAX -DCONFIG_LTABLE_DEBUG -DCONFIG_LTABLE_STATS -DCONFIG_MACF_LAZY_VNODE_LABELS -DCONFIG_MACH_APPROXIMATE_TIME -DCONFIG_MACH_BRIDGE_SEND_TIME -DCONFIG_MAXVIFS=32 -DCONFIG_MAX_CLUSTERS=8 -DCONFIG_MAX_THREADS=500 -DCONFIG_MBUF_JUMBO -DCONFIG_MCA -DCONFIG_MEMORYSTATUS -DCONFIG_MFCTBLSIZ=256 -DCONFIG_MIN_NBUF=256 -DCONFIG_MIN_NIOBUF=128 -DCONFIG_MNT_ROOTSNAP -DCONFIG_MNT_SUID -DCONFIG_MOUNT_PREBOOTRECOVERY -DCONFIG_MOUNT_VM -DCONFIG_MSG_BSIZE=CONFIG_MSG_BSIZE_DEV -DCONFIG_MSG_BSIZE_DEV=131072 -DCONFIG_MSG_BSIZE_REL=16384 -DCONFIG_MTRR -DCONFIG_NC_HASH=4096 -DCONFIG_NETBOOT -DCONFIG_NFS_GSS -DCONFIG_NMBCLUSTERS=512 -DCONFIG_PERSONAS -DCONFIG_PHYS_WRITE_ACCT -DCONFIG_PROC_UDATA_STORAGE -DCONFIG_PROC_UUID_POLICY -DCONFIG_PROTECT -DCONFIG_REQUIRES_U32_MUNGING -DCONFIG_ROSV_STARTUP -DCONFIG_SCHED_GRRR -DCONFIG_SCHED_GRRR_CORE -DCONFIG_SCHED_MULTIQ -DCONFIG_SCHED_PROTO -DCONFIG_SCHED_SFI -DCONFIG_SCHED_TIMESHARE_CORE -DCONFIG_SCHED_TRADITIONAL -DCONFIG_SEARCHFS -DCONFIG_SETUID -DCONFIG_SLEEP -DCONFIG_SYSDIAGNOSE -DCONFIG_TASKWATCH -DCONFIG_TASK_MAX=1024 -DCONFIG_TASK_ZONE_INFO -DCONFIG_TCBHASHSIZE=4096 -DCONFIG_TELEMETRY -DCONFIG_THREAD_MAX=2560 -DCONFIG_VFS_NAMES=4096 -DCONFIG_VMX -DCONFIG_VNGUARD -DCONFIG_VNODES=263168 -DCONFIG_VOLFS -DCONFIG_VSPRINTF -DCONFIG_WAITQ_DEBUG -DCONFIG_WAITQ_STATS -DCONFIG_WORKLOOP_DEBUG -DCONFIG_WORKQUEUE -DCONFIG_XNUPOST -DCONFIG_ZALLOC_SEQUESTER -DCONFIG_ZCACHE -DCONFIG_ZLEAKS -DCONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 -DCONFIG_ZLEAK_TRACE_MAP_NUM=8192 -DCONFIG_ZONE_MAP_MIN=120586240 -DCONTENT_FILTER -DCOPYOUT_SHIM -DCRYPTO_SHA2 -DFLOW_DIVERT -DHYPERVISOR -DICMP_BANDLIM -DIFNET_INPUT_SANITY_CHK -DIMPORTANCE_TRACE -DIOKIT -DIOKITCPP -DIOKITSTATS -DIOTRACKING -DIPSEC -DIPSEC_ESP -DKERNEL -DKERNEL_PRIVATE -DKPC -DKPERF -DLIBKERNCPP -DLOCK_STATS -DLP64 -DMACH -DMACH_BSD -DMACH_KERNEL -DMULTICAST -DMULTIPATH -DNAMEDSTREAMS -DNECP -DNO_DIRECT_RPC -DNULLFS -DOLD_SEMWAIT_SIGNAL -DPACKET_MANGLER -DPAGE_SIZE_FIXED -DPAL_I386 -DPGO -DPLATFORM_MacOSX -DPRIVATE -DPSYNCH -DSERIAL_CONSOLE -DTRAFFIC_MGT -DVIDEO_CONSOLE -DVM_PRESSURE_EVENTS -DX86_64 -DXNU_KERNEL_PRIVATE -DXNU_KERN_EVENT_DATA_IS_VLA -D_FORTIFY_SOURCE=0 -D__MACHO__=1 -D__X86_64__ -Dvolatile=__volatile -Dx86_64 -URC_ENABLE_XNU_PRODUCT_INFO_FILTER -include meta_features.h -DBOND -DCONFIG_AUDIT -DCONFIG_FSE -DCONFIG_IMAGEBOOT -DCONFIG_MACF -DCONFIG_MACF_SOCKET_SUBSET -DCONFIG_NFS4 -DCONFIG_TRIGGERS -DDEVFS -DDUMMYNET -DFDESC -DFIFO -DFS_COMPRESSION -DIF_BRIDGE -DIF_FAKE -DIF_HEADLESS -DINET -DKERNEL_BASE_OFFSET=0x100000 -DMACH_COMPAT -DMACH_FASTLINK -DMACH_KERNEL_PRIVATE -DMPTCP -DNETWORKING -DNFSCLIENT -DNFSSERVER -DPF -DPFLOG -DQUOTA -DSENDFILE -DSIXLOWPAN -DSOCKETS -DSYSV_MSG -DSYSV_SEM -DSYSV_SHM -DVLAN -DXNU_TARGET_OS_OSX -DZLIB -DLIBXNU_BUILD=1 -MD -MT CMakeFiles/osfmk.dir/fuzz/fakes/osfmk_stubs.c.o -MF CMakeFiles/osfmk.dir/fuzz/fakes/osfmk_stubs.c.o.d -o CMakeFiles/osfmk.dir/fuzz/fakes/osfmk_stubs.c.o -c /src/SockFuzzer/fuzz/fakes/osfmk_stubs.c
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:38:6: error: conflicting types for 'zone_view_startup_init'
   38 | void zone_view_startup_init() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/zalloc.h:960:13: note: previous declaration is here
  960 | extern void zone_view_startup_init(
      |             ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:42:6: error: conflicting types for 'lck_grp_startup_init'
   42 | void lck_grp_startup_init() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/lock_group.h:133:13: note: previous declaration is here
  133 | extern void lck_grp_startup_init(
      |             ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:46:6: error: conflicting types for 'lck_mtx_assert'
   46 | void lck_mtx_assert() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:881:25: note: previous declaration is here
  881 | extern void             lck_mtx_assert(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:48:6: error: conflicting types for 'lck_mtx_init'
   48 | void lck_mtx_init() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:223:25: note: previous declaration is here
  223 | extern void             lck_mtx_init(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:50:6: error: conflicting types for 'lck_mtx_lock'
   50 | void lck_mtx_lock() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:227:25: note: previous declaration is here
  227 | extern void             lck_mtx_lock(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:52:6: error: conflicting types for 'lck_spin_init'
   52 | void lck_spin_init() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:136:25: note: previous declaration is here
  136 | extern void             lck_spin_init(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:80:6: error: conflicting types for 'lck_mtx_lock_spin'
   80 | void lck_mtx_lock_spin() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:855:25: note: previous declaration is here
  855 | extern void             lck_mtx_lock_spin(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:82:6: error: conflicting types for 'lck_mtx_convert_spin'
   82 | void lck_mtx_convert_spin() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:861:25: note: previous declaration is here
  861 | extern void             lck_mtx_convert_spin(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:84:6: error: conflicting types for 'lck_mtx_free'
   84 | void lck_mtx_free() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:237:25: note: previous declaration is here
  237 | extern void             lck_mtx_free(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:86:6: error: conflicting types for 'lck_rw_init'
   86 | void lck_rw_init() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:954:25: note: previous declaration is here
  954 | extern void             lck_rw_init(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:88:6: error: conflicting types for 'lck_mtx_unlock'
   88 | void lck_mtx_unlock() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:230:25: note: previous declaration is here
  230 | extern void             lck_mtx_unlock(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:90:6: error: conflicting types for 'lck_attr_free'
   90 | void lck_attr_free() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:127:25: note: previous declaration is here
  127 | extern  void            lck_attr_free(
      |                         ^
/src/SockFuzzer/fuzz/fakes/osfmk_stubs.c:92:6: error: conflicting types for 'lck_attr_setdebug'
   92 | void lck_attr_setdebug() {}
      |      ^
/src/SockFuzzer/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/locks.h:83:25: note: previous declaration is here
   83 | extern  void            lck_attr_setdebug(
      |                         ^
13 errors generated.
[10/196] Building C object CMakeFiles/bsd.dir/third_party/xnu/bsd/kern/kern_event.c.o
ninja: build stopped: subcommand failed.
ERROR:__main__:Building fuzzers failed.

https://github.com/googleprojectzero/SockFuzzer/blob/1bf18a775ee886af7cfe1c0fc858b19c09e1352e/fuzz/fakes/osfmk_stubs.c#L38

https://github.com/googleprojectzero/SockFuzzer/blob/1bf18a775ee886af7cfe1c0fc858b19c09e1352e/third_party/xnu/BUILD/obj/EXPORT_HDRS/osfmk/kern/zalloc.h#L960