Hi!
I'm trying to run a libFuzzer harness that came with AOSP on the default Android Automotive emulator. This is the output I get:
WARNING: found 1 unrecognized flag(s):
coverage_counters
==2724==AddressSanitizer: failed to intercept '__strxfrm_l'
==2724==AddressSanitizer: failed to intercept 'bcmp'
==2724==AddressSanitizer: failed to intercept 'wait3'
==2724==AddressSanitizer: failed to intercept '__wait4'
==2724==AddressSanitizer: failed to intercept 'ftime'
==2724==AddressSanitizer: failed to intercept 'pthread_setcancelstate'
==2724==AddressSanitizer: failed to intercept 'pthread_setcanceltype'
==2724==AddressSanitizer: failed to intercept 'getutid'
==2724==AddressSanitizer: failed to intercept 'getutline'
==2724==AddressSanitizer: failed to intercept '__wcsxfrm_l'
==2724==AddressSanitizer: failed to intercept 'bsd_signal'
==2724==AddressSanitizer: failed to intercept 'index'
==2724==AddressSanitizer: libc interceptors initialized
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem ||
MemToShadow(shadow): 0x00008fff7000 0x000091ff6dff 0x004091ff6e00 0x02008fff6fff
redzone=16
max_redzone=2048
quarantine_size_mb=16M
thread_local_quarantine_size_kb=64K
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 0x7fff8000
==2724==Installed the sigaction for signal 11
==2724==Installed the sigaction for signal 7
==2724==Installed the sigaction for signal 8
==2724==T0: stack [0x7fff302e8000,0x7fff30ae8000) size 0x800000; local=0x7fff30ae332c
==2724==AddressSanitizer Init done
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 1079642518
INFO: Loaded 1 modules (5113 inline 8-bit counters): 5113 [0x56995dd41de8, 0x56995dd431e1),
INFO: Loaded 1 PC tables (5113 PCs): 5113 [0x56995dd431e8,0x56995dd57178),
==2724==T1: stack [0x7d43440d1000,0x7d43441cacd0) size 0xf9cd0; local=0x7d43441cabac
INFO: 78 files found in inputs
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
INFO: seed corpus: files: 78 min: 1b max: 8b total: 509b rss: 34Mb
==2724==T2: stack [0x7d4342302000,0x7d43423fbcd0) size 0xf9cd0; local=0x7d43423fbbac
==2724==T3: stack [0x7d4342102000,0x7d43421fbcd0) size 0xf9cd0; local=0x7d43421fbbac
==2724==T4: stack [0x7d4341f02000,0x7d4341ffbcd0) size 0xf9cd0; local=0x7d4341ffbbac
==2724==T5: stack [0x7d4341d02000,0x7d4341dfbcd0) size 0xf9cd0; local=0x7d4341dfbbac
==2724==T6: stack [0x7d4341b02000,0x7d4341bfbcd0) size 0xf9cd0; local=0x7d4341bfbbac
==2724==T8: stack [0x7d40af8fe000,0x7d40af9f7cd0) size 0xf9cd0; local=0x7d40af9f7bac
==2724==T7: stack [0x7d40af9fc000,0x7d40afaf5cd0) size 0xf9cd0; local=0x7d40afaf5bac
==2724==T9: stack [0x7d40af800000,0x7d40af8f9cd0) size 0xf9cd0; local=0x7d40af8f9bac
==2724==T10: stack [0x7d40af702000,0x7d40af7fbcd0) size 0xf9cd0; local=0x7d40af7fbbac
Aborted
Then I checked the adb logcat and this seems Interesting:
04-20 11:34:48.196 2781 2781 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-20 11:34:48.196 2781 2781 F DEBUG : Build fingerprint: 'Android/sdk_car_x86_64/emulator_car_x86_64:13/TQ2A.230405.003.E1/eng.hacker.20230413.001539:userdebug/test-keys'
04-20 11:34:48.196 2781 2781 F DEBUG : Revision: '0'
04-20 11:34:48.196 2781 2781 F DEBUG : ABI: 'x86_64'
04-20 11:34:48.196 2781 2781 F DEBUG : Timestamp: 2023-04-20 11:34:48.043564790+0200
04-20 11:34:48.196 2781 2781 F DEBUG : Process uptime: 2s
04-20 11:34:48.196 2781 2781 F DEBUG : Cmdline: ./automotiveCanV1.0_fuzzer -max_total_time=86400 -detect_leaks=1 -print_pcs=1 -print_final_stats=1 -print_coverage=1 -print_full_coverage=1 inputs
04-20 11:34:48.196 2781 2781 F DEBUG : pid: 2724, tid: 2726, name: HwBinder:2724_1 >>> ./automotiveCanV1.0_fuzzer <<<
04-20 11:34:48.196 2781 2781 F DEBUG : uid: 0
04-20 11:34:48.196 2781 2781 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
04-20 11:34:48.196 2781 2781 F DEBUG : Abort message: 'Check failed: !mIsUp Interface is still up while being destroyed'
04-20 11:34:48.196 2781 2781 F DEBUG : rax 0000000000000000 rbx 0000000000000aa4 rcx 00007d43473954af rdx 0000000000000006
04-20 11:34:48.196 2781 2781 F DEBUG : r8 000060700001a8f0 r9 000060700001a8f0 r10 00007d43423fb870 r11 0000000000000217
04-20 11:34:48.196 2781 2781 F DEBUG : r12 000000000000005b r13 0000612000029f6c r14 00007d43423fb868 r15 0000000000000aa6
04-20 11:34:48.196 2781 2781 F DEBUG : rdi 0000000000000aa4 rsi 0000000000000aa6
04-20 11:34:48.196 2781 2781 F DEBUG : rbp 0000000000000000 rsp 00007d43423fb860 rip 00007d43473954af
04-20 11:34:48.196 2781 2781 F DEBUG : backtrace:
04-20 11:34:48.196 2781 2781 F DEBUG : #00 pc 00000000000794af /apex/com.android.runtime/lib64/bionic/libc.so (abort+207) (BuildId: 11dc0b59a8589c2a909151617d66477b)
04-20 11:34:48.196 2781 2781 F DEBUG : #01 pc 000000000000c982 /system/lib64/liblog.so (__android_log_default_aborter+18) (BuildId: 64872ff7d3b12bdb6a8adb97e4a5508f)
04-20 11:34:48.196 2781 2781 F DEBUG : #02 pc 000000000002f1c7 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+951) (BuildId: 27c42ea89162e6d909970a78406608d1)
04-20 11:34:48.196 2781 2781 F DEBUG : #03 pc 0000000000056d84 /data/fuzz/x86_64/automotiveCanV1.0_fuzzer/vendor/automotiveCanV1.0_fuzzer (android::hardware::automotive::can::V1_0::implementation::CanBus::~CanBus()+1732) (BuildId: 63834e35df72651eaa1494c0caa26fe7)
04-20 11:34:48.196 2781 2781 F DEBUG : #04 pc 0000000000069400 /data/fuzz/x86_64/automotiveCanV1.0_fuzzer/vendor/automotiveCanV1.0_fuzzer (virtual thunk to android::hardware::automotive::can::V1_0::implementation::CanBusVirtual::~CanBusVirtual()+80) (BuildId: 63834e35df72651eaa1494c0caa26fe7)
04-20 11:34:48.196 2781 2781 F DEBUG : #05 pc 00000000000176bc /system/lib64/libutils.so (android::RefBase::decStrong(void const*) const+140) (BuildId: bf1c018f0326684482c5413dbebda847)
04-20 11:34:48.196 2781 2781 F DEBUG : #06 pc 000000000015bd34 /system/lib64/libhidlbase.so (android::hidl::base::V1_0::BnHwBase::~BnHwBase()+260) (BuildId: 7f3f1f24211393623f87db14ce7b2b55)
04-20 11:34:48.196 2781 2781 F DEBUG : #07 pc 0000000000048d25 /vendor/lib64/
android.hardwar...@1.0.so (android::hardware::automotive::can::V1_0::BnHwCanBus::~BnHwCanBus()+277) (BuildId: 4b83d24048757d91260aa87c6a445076)
04-20 11:34:48.196 2781 2781 F DEBUG : #08 pc 0000000000049001 /vendor/lib64/
android.hardwar...@1.0.so (virtual thunk to android::hardware::automotive::can::V1_0::BnHwCanBus::~BnHwCanBus()+33) (BuildId: 4b83d24048757d91260aa87c6a445076)
04-20 11:34:48.196 2781 2781 F DEBUG : #09 pc 00000000000176bc /system/lib64/libutils.so (android::RefBase::decStrong(void const*) const+140) (BuildId: bf1c018f0326684482c5413dbebda847)
04-20 11:34:48.196 2781 2781 F DEBUG : #10 pc 0000000000175efb /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::processPendingDerefs()+475) (BuildId: 7f3f1f24211393623f87db14ce7b2b55)
04-20 11:34:48.196 2781 2781 F DEBUG : #11 pc 00000000001760f7 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::joinThreadPool(bool)+119) (BuildId: 7f3f1f24211393623f87db14ce7b2b55)
04-20 11:34:48.196 2781 2781 F DEBUG : #12 pc 0000000000186aaf /system/lib64/libhidlbase.so (android::hardware::PoolThread::threadLoop()+31) (BuildId: 7f3f1f24211393623f87db14ce7b2b55)
04-20 11:34:48.196 2781 2781 F DEBUG : #13 pc 000000000001cb58 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+776) (BuildId: bf1c018f0326684482c5413dbebda847)
04-20 11:34:48.196 2781 2781 F DEBUG : #14 pc 000000000010fdd2 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+66) (BuildId: 11dc0b59a8589c2a909151617d66477b)
04-20 11:34:48.196 2781 2781 F DEBUG : #15 pc 000000000007b46f /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+95) (BuildId: 11dc0b59a8589c2a909151617d66477b)
04-20 11:34:48.199 719 896 W NativeCrashListener: Couldn't find ProcessRecord for pid 2724
04-20 11:34:48.200 312 312 E tombstoned: Tombstone written to: tombstone_42
04-20 11:34:48.201 719 789 E NativeTombstoneManager: Tombstone's UID (0) not an app, ignoring
04-20 11:34:48.201 719 789 E NativeTombstoneManager: Tombstone's UID (0) not an app, ignoring
04-20 11:34:48.206 420 462 W HidlServiceManagement: getService: found dead hwbinder service for android.hardware.automotive.can@1.0::ICanBus/aae.
04-20 11:34:48.206 420 462 W ProtoCanBusSrv: Can't fetch ICanBus/aae
04-20 11:34:48.206 420 462 D ProtoCanBusSrv: Got fatal error from CAN bus HAL: INTERFACE_DOWN
04-20 11:34:48.206 420 462 F HidlStatus: Failed HIDL return status not checked. Usually this happens because of a transport error (error parceling, binder driver, or from unparceling). If you see this in code calling into "Bn" classes in for a HAL server process, then it is likely that the code there is returning transport errors there (as opposed to errors defined within its protocol). Error is: Status(EX_TRANSACTION_FAILED): 'DEAD_OBJECT: '
04-20 11:34:48.206 420 462 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 462 (HwBinder:420_1), pid 420 (binder:420_2)
04-20 11:34:48.245 0 0 I binder : send failed reply for transaction 89726 to 420:462
04-20 11:34:48.245 0 0 I binder : 420:462 transaction failed 29189/-22, size 52-0 line 2920
What would be the issue?