mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 05:37:54 +00:00
parent
720919bc14
commit
8e2e4374f5
@ -18,7 +18,6 @@ extern void sanitizer_init(Genode::Env &);
|
||||
|
||||
void Component::construct(Genode::Env &env)
|
||||
{
|
||||
env.exec_static_constructors();
|
||||
sanitizer_init(env);
|
||||
|
||||
/* test array out-of-bounds access detection */
|
||||
|
@ -5,8 +5,8 @@ SANITIZER_DIR := $(SANITIZER_PORT_DIR)/src/lib/sanitizer
|
||||
SRC_CC = sanitizer_allocator.cc \
|
||||
sanitizer_common.cc \
|
||||
sanitizer_common_libcdep.cc \
|
||||
sanitizer_coverage_libcdep.cc \
|
||||
sanitizer_coverage_mapping_libcdep.cc \
|
||||
sanitizer_coverage_libcdep_new.cc \
|
||||
sanitizer_file.cc \
|
||||
sanitizer_flag_parser.cc \
|
||||
sanitizer_flags.cc \
|
||||
sanitizer_genode.cc \
|
||||
@ -21,7 +21,8 @@ SRC_CC = sanitizer_allocator.cc \
|
||||
sanitizer_symbolizer.cc \
|
||||
sanitizer_symbolizer_libbacktrace.cc \
|
||||
sanitizer_symbolizer_libcdep.cc \
|
||||
sanitizer_symbolizer_posix_libcdep.cc
|
||||
sanitizer_symbolizer_posix_libcdep.cc \
|
||||
sanitizer_termination.cc
|
||||
|
||||
INC_DIR += $(SANITIZER_DIR)
|
||||
|
||||
|
@ -11,7 +11,7 @@ SRC_CC = ubsan_diag.cc \
|
||||
ubsan_type_hash_itanium.cc \
|
||||
ubsan_value.cc
|
||||
|
||||
CC_OPT += -DCAN_SANITIZE_UB=1
|
||||
CC_OPT += -DCAN_SANITIZE_UB=1 -DUBSAN_CAN_USE_CXXABI=1
|
||||
|
||||
LIBS += libsanitizer_common
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
OnPrint W
|
||||
_Z14sanitizer_initRN6Genode3EnvE T
|
||||
_ZN11__sanitizer10ExtractIntEPKcS1_Pi T
|
||||
_ZN11__sanitizer10FileExistsEPKc T
|
||||
_ZN11__sanitizer10FlagParser10ll_strndupEPKcm T
|
||||
_ZN11__sanitizer10FlagParser10parse_flagEv T
|
||||
_ZN11__sanitizer10FlagParser11ParseStringEPKc T
|
||||
@ -16,6 +16,7 @@ _ZN11__sanitizer10FlagParser9ParseFileEPKcb T
|
||||
_ZN11__sanitizer10FlagParserC1Ev T
|
||||
_ZN11__sanitizer10FlagParserC2Ev T
|
||||
_ZN11__sanitizer10RenameFileEPKcS1_Pi T
|
||||
_ZN11__sanitizer10RenderDataEPNS_20InternalScopedStringEPKcPKNS_8DataInfoES3_ T
|
||||
_ZN11__sanitizer10ReportFile13SetReportPathEPKc T
|
||||
_ZN11__sanitizer10ReportFile14SupportsColorsEv T
|
||||
_ZN11__sanitizer10ReportFile17ReopenIfNecessaryEv T
|
||||
@ -26,6 +27,8 @@ _ZN11__sanitizer10Symbolizer11SymbolizePCEm T
|
||||
_ZN11__sanitizer10Symbolizer11symbolizer_E B 8
|
||||
_ZN11__sanitizer10Symbolizer12PlatformInitEv T
|
||||
_ZN11__sanitizer10Symbolizer13SymbolizeDataEmPNS_8DataInfoE T
|
||||
_ZN11__sanitizer10Symbolizer14LateInitializeEv T
|
||||
_ZN11__sanitizer10Symbolizer14RefreshModulesEv T
|
||||
_ZN11__sanitizer10Symbolizer15ModuleNameOwner12GetOwnedCopyEPKc T
|
||||
_ZN11__sanitizer10Symbolizer15SymbolizerScopeC1EPKS0_ T
|
||||
_ZN11__sanitizer10Symbolizer15SymbolizerScopeC2EPKS0_ T
|
||||
@ -33,11 +36,12 @@ _ZN11__sanitizer10Symbolizer15SymbolizerScopeD1Ev T
|
||||
_ZN11__sanitizer10Symbolizer15SymbolizerScopeD2Ev T
|
||||
_ZN11__sanitizer10Symbolizer16PlatformDemangleEPKc T
|
||||
_ZN11__sanitizer10Symbolizer20FindModuleForAddressEm T
|
||||
_ZN11__sanitizer10Symbolizer20InvalidateModuleListEv T
|
||||
_ZN11__sanitizer10Symbolizer20PrepareForSandboxingEv T
|
||||
_ZN11__sanitizer10Symbolizer21symbolizer_allocator_E B 16
|
||||
_ZN11__sanitizer10Symbolizer27GetModuleNameAndOffsetForPCEmPPKcPm T
|
||||
_ZN11__sanitizer10Symbolizer28PlatformPrepareForSandboxingEv T
|
||||
_ZN11__sanitizer10Symbolizer33FindModuleNameAndOffsetForAddressEmPPKcPm T
|
||||
_ZN11__sanitizer10Symbolizer33FindModuleNameAndOffsetForAddressEmPPKcPmPNS_10ModuleArchE T
|
||||
_ZN11__sanitizer10Symbolizer5FlushEv T
|
||||
_ZN11__sanitizer10Symbolizer8AddHooksEPFvvES2_ T
|
||||
_ZN11__sanitizer10Symbolizer8DemangleEPKc T
|
||||
@ -45,13 +49,11 @@ _ZN11__sanitizer10Symbolizer8init_mu_E B 1
|
||||
_ZN11__sanitizer10Symbolizer9GetOrInitEv T
|
||||
_ZN11__sanitizer10SymbolizerC1ENS_13IntrusiveListINS_14SymbolizerToolEEE T
|
||||
_ZN11__sanitizer10SymbolizerC2ENS_13IntrusiveListINS_14SymbolizerToolEEE T
|
||||
_ZN11__sanitizer10UnbundlePcEm T
|
||||
_ZN11__sanitizer10UnmapOrDieEPvm T
|
||||
_ZN11__sanitizer11AddressInfo14FillModuleInfoEPKcm T
|
||||
_ZN11__sanitizer11AddressInfo14FillModuleInfoEPKcmNS_10ModuleArchE T
|
||||
_ZN11__sanitizer11AddressInfo5ClearEv T
|
||||
_ZN11__sanitizer11AddressInfoC1Ev T
|
||||
_ZN11__sanitizer11AddressInfoC2Ev T
|
||||
_ZN11__sanitizer11CheckFailedEPKciS1_yy T
|
||||
_ZN11__sanitizer11CommonFlags11SetDefaultsEv T
|
||||
_ZN11__sanitizer11CommonFlags8CopyFromERKS0_ T
|
||||
_ZN11__sanitizer11ExtractUptrEPKcS1_Pm T
|
||||
@ -60,66 +62,48 @@ _ZN11__sanitizer11RenderFrameEPNS_20InternalScopedStringEPKciRKNS_11AddressInfoE
|
||||
_ZN11__sanitizer11WriteToFileEiPKvmPmPi T
|
||||
_ZN11__sanitizer11mem_is_zeroEPKcm T
|
||||
_ZN11__sanitizer11report_fileE D 8216
|
||||
_ZN11__sanitizer12CovAfterForkEi T
|
||||
_ZN11__sanitizer12CoverageData10BeforeForkEv T
|
||||
_ZN11__sanitizer12CoverageData10DirectOpenEv T
|
||||
_ZN11__sanitizer12CoverageData11DumpOffsetsEv T
|
||||
_ZN11__sanitizer12CoverageData12DumpAsBitSetEv T
|
||||
_ZN11__sanitizer12CoverageData12DumpCountersEv T
|
||||
_ZN11__sanitizer12CoverageData16InitializeGuardsEPimPKcm T
|
||||
_ZN11__sanitizer12CoverageData18InitializeCountersEPhm T
|
||||
_ZN11__sanitizer12CoverageData18ReinitializeGuardsEv T
|
||||
_ZN11__sanitizer12CoverageData19UpdateModuleNameVecEmmm T
|
||||
_ZN11__sanitizer12CoverageData20InitializeGuardArrayEPi T
|
||||
_ZN11__sanitizer12CoverageData21DumpCallerCalleePairsEv T
|
||||
_ZN11__sanitizer12CoverageData23GetNumberOf8bitCountersEv T
|
||||
_ZN11__sanitizer12CoverageData39Update8bitCounterBitsetAndClearCountersEPh T
|
||||
_ZN11__sanitizer12CoverageData3AddEmPj T
|
||||
_ZN11__sanitizer12CoverageData4InitEv T
|
||||
_ZN11__sanitizer12CoverageData4dataEv T
|
||||
_ZN11__sanitizer12CoverageData4sizeEv T
|
||||
_ZN11__sanitizer12CoverageData6EnableEv T
|
||||
_ZN11__sanitizer12CoverageData6ExtendEm T
|
||||
_ZN11__sanitizer12CoverageData6ReInitEv T
|
||||
_ZN11__sanitizer12CoverageData7DisableEv T
|
||||
_ZN11__sanitizer12CoverageData7DumpAllEv T
|
||||
_ZN11__sanitizer12CoverageData9AfterForkEi T
|
||||
_ZN11__sanitizer12CoverageData9DumpTraceEv T
|
||||
_ZN11__sanitizer12CoverageData9IndirCallEmmPmm T
|
||||
_ZN11__sanitizer12DieOnFailure12OnBadRequestEv T
|
||||
_ZN11__sanitizer12DieOnFailure5OnOOMEv T
|
||||
_ZN11__sanitizer12ExtractTokenEPKcS1_PPc T
|
||||
_ZN11__sanitizer12InternalFreeEPvPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32ILm0ELy140737488355328ELm0ENS_12SizeClassMapILm17ELm64ELm14EEELm20ENS_15TwoLevelByteMapILy32768ELy4096ENS_20NoOpMapUnmapCallbackEEES6_EEEE T
|
||||
_ZN11__sanitizer12LoadedModule15addAddressRangeEmmb T
|
||||
_ZN11__sanitizer12InternalFreeEPvPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T
|
||||
_ZN11__sanitizer12LoadedModule15addAddressRangeEmmbbPKc T
|
||||
_ZN11__sanitizer12LoadedModule3setEPKcm T
|
||||
_ZN11__sanitizer12LoadedModule3setEPKcmNS_10ModuleArchEPhb T
|
||||
_ZN11__sanitizer12LoadedModule5clearEv T
|
||||
_ZN11__sanitizer12PrintCmdlineEv T
|
||||
_ZN11__sanitizer12ReadFromFileEiPvmPmPi T
|
||||
_ZN11__sanitizer12RunFreeHooksEPKv T
|
||||
_ZN11__sanitizer13BlockingMutex11CheckLockedEv T
|
||||
_ZN11__sanitizer13BlockingMutex4LockEv T
|
||||
_ZN11__sanitizer13BlockingMutex6UnlockEv T
|
||||
_ZN11__sanitizer13BlockingMutexC1Ev T
|
||||
_ZN11__sanitizer13BlockingMutexC2Ev T
|
||||
_ZN11__sanitizer13CovBeforeForkEv T
|
||||
_ZN11__sanitizer13InternalAllocEmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32ILm0ELy140737488355328ELm0ENS_12SizeClassMapILm17ELm64ELm14EEELm20ENS_15TwoLevelByteMapILy32768ELy4096ENS_20NoOpMapUnmapCallbackEEES5_EEEE T
|
||||
_ZN11__sanitizer13InternalAllocEmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEEm T
|
||||
_ZN11__sanitizer13StackDepotGetEj T
|
||||
_ZN11__sanitizer13StackDepotPutENS_10StackTraceE T
|
||||
_ZN11__sanitizer13TemplateMatchEPKcS1_ T
|
||||
_ZN11__sanitizer13WriteToSyslogEPKc T
|
||||
_ZN11__sanitizer13unknown_flagsE B 168
|
||||
_ZN11__sanitizer14AddDieCallbackEPFvvE T
|
||||
_ZN11__sanitizer14DemangleCXXABIEPKc T
|
||||
_ZN11__sanitizer14DumpProcessMapEv T
|
||||
_ZN11__sanitizer14GetProcessNameEv T
|
||||
_ZN11__sanitizer14InternalCallocEmmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T
|
||||
_ZN11__sanitizer14IsAbsolutePathEPKc T
|
||||
_ZN11__sanitizer14LLVMSymbolizer11SendCommandEbPKcm T
|
||||
_ZN11__sanitizer14LLVMSymbolizer11SymbolizePCEmPNS_15SymbolizedStackE T
|
||||
_ZN11__sanitizer14LLVMSymbolizer13SymbolizeDataEmPNS_8DataInfoE T
|
||||
_ZN11__sanitizer14LLVMSymbolizer20FormatAndSendCommandEbPKcmNS_10ModuleArchE T
|
||||
_ZN11__sanitizer14LLVMSymbolizerC1EPKcPNS_17LowLevelAllocatorE T
|
||||
_ZN11__sanitizer14LLVMSymbolizerC2EPKcPNS_17LowLevelAllocatorE T
|
||||
_ZN11__sanitizer14PageSizeCachedE B 8
|
||||
_ZN11__sanitizer14ReadBinaryNameEPcm T
|
||||
_ZN11__sanitizer14RunMallocHooksEPKvm T
|
||||
_ZN11__sanitizer14SleepForMillisEi T
|
||||
_ZN11__sanitizer14internal__exitEi T
|
||||
_ZN11__sanitizer14internal_atollEPKc T
|
||||
_ZN11__sanitizer14report_file_muE B 1
|
||||
_ZN11__sanitizer15CacheBinaryNameEv T
|
||||
_ZN11__sanitizer15ColorizeReportsEv T
|
||||
_ZN11__sanitizer15InternalReallocEPvmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T
|
||||
_ZN11__sanitizer15IsPathSeparatorEc T
|
||||
_ZN11__sanitizer15StripModuleNameEPKc T
|
||||
_ZN11__sanitizer15StripPathPrefixEPKcS1_ T
|
||||
@ -127,7 +111,6 @@ _ZN11__sanitizer15SymbolizedStack3NewEm T
|
||||
_ZN11__sanitizer15SymbolizedStack8ClearAllEv T
|
||||
_ZN11__sanitizer15SymbolizedStackC1Ev T
|
||||
_ZN11__sanitizer15SymbolizedStackC2Ev T
|
||||
_ZN11__sanitizer15UnbundleCounterEm T
|
||||
_ZN11__sanitizer15internal_getpidEv T
|
||||
_ZN11__sanitizer15internal_memchrEPKvim T
|
||||
_ZN11__sanitizer15internal_memcmpEPKvS1_m T
|
||||
@ -138,13 +121,9 @@ _ZN11__sanitizer15internal_strcmpEPKcS1_ T
|
||||
_ZN11__sanitizer15internal_strdupEPKc T
|
||||
_ZN11__sanitizer15internal_strlenEPKc T
|
||||
_ZN11__sanitizer15internal_strstrEPKcS1_ T
|
||||
_ZN11__sanitizer15internal_wcslenEPKw T
|
||||
_ZN11__sanitizer16Addr2LineProcess18output_terminator_E R 9
|
||||
_ZN11__sanitizer16BackgroundThreadEPv T
|
||||
_ZN11__sanitizer16CovUpdateMappingEPKcm T
|
||||
_ZN11__sanitizer16FindPathToBinaryEPKc T
|
||||
_ZN11__sanitizer16GetListOfModulesEPNS_12LoadedModuleEmPFbPKcE T
|
||||
_ZN11__sanitizer16MaybeOpenCovFileEPKc T
|
||||
_ZN11__sanitizer16MmapAlignedOrDieEmmPKc T
|
||||
_ZN11__sanitizer16MprotectNoAccessEmm T
|
||||
_ZN11__sanitizer16ReadFileToBufferEPKcPPcPmS4_mPi T
|
||||
_ZN11__sanitizer16StackDepotHandle20inc_use_count_unsafeEv T
|
||||
@ -154,6 +133,8 @@ _ZN11__sanitizer16internal_iserrorEmPi T
|
||||
_ZN11__sanitizer16internal_memmoveEPvPKvm T
|
||||
_ZN11__sanitizer16internal_memrchrEPKvim T
|
||||
_ZN11__sanitizer16internal_strcspnEPKcS1_ T
|
||||
_ZN11__sanitizer16internal_strlcatEPcPKcm T
|
||||
_ZN11__sanitizer16internal_strlcpyEPcPKcm T
|
||||
_ZN11__sanitizer16internal_strncatEPcPKcm T
|
||||
_ZN11__sanitizer16internal_strncmpEPKcS1_m T
|
||||
_ZN11__sanitizer16internal_strncpyEPcPKcm T
|
||||
@ -161,10 +142,8 @@ _ZN11__sanitizer16internal_strndupEPKcm T
|
||||
_ZN11__sanitizer16internal_strnlenEPKcm T
|
||||
_ZN11__sanitizer16internal_strrchrEPKci T
|
||||
_ZN11__sanitizer17DecreaseTotalMmapEm T
|
||||
_ZN11__sanitizer17GetPageSizeCachedEv T
|
||||
_ZN11__sanitizer17IncreaseTotalMmapEm T
|
||||
_ZN11__sanitizer17LowLevelAllocator8AllocateEm T
|
||||
_ZN11__sanitizer17RemoveDieCallbackEPFvvE T
|
||||
_ZN11__sanitizer17SanitizerToolNameE D 8
|
||||
_ZN11__sanitizer17StackDepotLockAllEv T
|
||||
_ZN11__sanitizer17SymbolizerProcess11SendCommandEPKc T
|
||||
@ -184,14 +163,13 @@ _ZN11__sanitizer18BufferedStackTrace15FastUnwindStackEmmmmj T
|
||||
_ZN11__sanitizer18BufferedStackTrace15LocatePcInTraceEm T
|
||||
_ZN11__sanitizer18BufferedStackTrace4InitEPKmmm T
|
||||
_ZN11__sanitizer18BufferedStackTrace6UnwindEjmmPvmmb T
|
||||
_ZN11__sanitizer18BundlePcAndCounterEmm T
|
||||
_ZN11__sanitizer18GetMmapGranularityEv T
|
||||
_ZN11__sanitizer18InitializeCoverageEbPKc T
|
||||
_ZN11__sanitizer18HandleDeadlySignalEPvS0_jPFvRKNS_13SignalContextEPKvPNS_18BufferedStackTraceEES5_ T
|
||||
_ZN11__sanitizer18MmapNoReserveOrDieEmPKc T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKc T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKcPNS_10StackTraceE T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKcRKNS_11AddressInfoE T
|
||||
_ZN11__sanitizer18SetUserDieCallbackEPFvvE T
|
||||
_ZN11__sanitizer18ReportDeadlySignalERKNS_13SignalContextEjPFvS2_PKvPNS_18BufferedStackTraceEES4_ T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKcPKNS_10StackTraceES1_ T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKcRKNS_11AddressInfoES1_ T
|
||||
_ZN11__sanitizer18ReportErrorSummaryEPKcS1_ T
|
||||
_ZN11__sanitizer18StackDepotGetStatsEv T
|
||||
_ZN11__sanitizer18SuppressionContext10GetMatchedEPNS_18InternalMmapVectorIPNS_11SuppressionEEE T
|
||||
_ZN11__sanitizer18SuppressionContext13ParseFromFileEPKc T
|
||||
@ -202,66 +180,75 @@ _ZN11__sanitizer18SuppressionContextC2EPPKci T
|
||||
_ZN11__sanitizer18internal_allocatorEv T
|
||||
_ZN11__sanitizer18internal_ftruncateEim T
|
||||
_ZN11__sanitizer18internal_strchrnulEPKci T
|
||||
_ZN11__sanitizer19DemangleSwiftAndCXXEPKc T
|
||||
_ZN11__sanitizer19ReadLongProcessNameEPcm T
|
||||
_ZN11__sanitizer19RegisterCommonFlagsEPNS_10FlagParserEPNS_11CommonFlagsE T
|
||||
_ZN11__sanitizer19StackDepotUnlockAllEv T
|
||||
_ZN11__sanitizer20InternalScopedString6appendEPKcz T
|
||||
_ZN11__sanitizer20PrepareForSandboxingEP29__sanitizer_sandbox_arguments T
|
||||
_ZN11__sanitizer20ReInitializeCoverageEbPKc T
|
||||
_ZN11__sanitizer20ReadBinaryNameCachedEPcm T
|
||||
_ZN11__sanitizer20RegisterIncludeFlagsEPNS_10FlagParserEPNS_11CommonFlagsE T
|
||||
_ZN11__sanitizer20RenderModuleLocationEPNS_20InternalScopedStringEPKcmS3_ T
|
||||
_ZN11__sanitizer20RenderModuleLocationEPNS_20InternalScopedStringEPKcmNS_10ModuleArchES3_ T
|
||||
_ZN11__sanitizer20RenderSourceLocationEPNS_20InternalScopedStringEPKciibS3_ T
|
||||
_ZN11__sanitizer20StackDepotReverseMap10IdDescPair12IdComparatorERKS1_S3_ T
|
||||
_ZN11__sanitizer20StackDepotReverseMap3GetEj T
|
||||
_ZN11__sanitizer20StackDepotReverseMapC1Ev T
|
||||
_ZN11__sanitizer20StackDepotReverseMapC2Ev T
|
||||
_ZN11__sanitizer20internal_sched_yieldEv T
|
||||
_ZN11__sanitizer21CoverageUpdateMappingEv T
|
||||
_ZN11__sanitizer21InitializeCommonFlagsEPNS_11CommonFlagsE T
|
||||
_ZN11__sanitizer21ScopedErrorReportLock11CheckLockedEv T
|
||||
_ZN11__sanitizer21ScopedErrorReportLockC1Ev T
|
||||
_ZN11__sanitizer21ScopedErrorReportLockC2Ev T
|
||||
_ZN11__sanitizer21ScopedErrorReportLockD1Ev T
|
||||
_ZN11__sanitizer21ScopedErrorReportLockD2Ev T
|
||||
_ZN11__sanitizer21SetSandboxingCallbackEPFvvE T
|
||||
_ZN11__sanitizer21SupportsColoredOutputEi T
|
||||
_ZN11__sanitizer21common_flags_dont_useE B 168
|
||||
_ZN11__sanitizer21common_flags_dont_useE B 232
|
||||
_ZN11__sanitizer22AllocatorMayReturnNullEv T
|
||||
_ZN11__sanitizer22CatastrophicErrorWriteEPKcm T
|
||||
_ZN11__sanitizer22IsAllocatorOutOfMemoryEv T
|
||||
_ZN11__sanitizer22LibbacktraceSymbolizer11SymbolizePCEmPNS_15SymbolizedStackE T
|
||||
_ZN11__sanitizer22LibbacktraceSymbolizer13SymbolizeDataEmPNS_8DataInfoE T
|
||||
_ZN11__sanitizer22LibbacktraceSymbolizer3getEPNS_17LowLevelAllocatorE T
|
||||
_ZN11__sanitizer22LibbacktraceSymbolizer8DemangleEPKc T
|
||||
_ZN11__sanitizer22ParseSymbolizePCOutputEPKcPNS_15SymbolizedStackE T
|
||||
_ZN11__sanitizer22SetCheckFailedCallbackEPFvPKciS1_yyE T
|
||||
_ZN11__sanitizer22SubstituteForFlagValueEPKcPcm T
|
||||
_ZN11__sanitizer22thePersistentAllocatorE B 24
|
||||
_ZN11__sanitizer23CovPrepareForSandboxingEP29__sanitizer_sandbox_arguments T
|
||||
_ZN11__sanitizer23IsAccessibleMemoryRangeEmm T
|
||||
_ZN11__sanitizer23MapWritableFileToMemoryEPvmim T
|
||||
_ZN11__sanitizer23ReportMmapFailureAndDieEmPKcS1_i T
|
||||
_ZN11__sanitizer23ReportMmapFailureAndDieEmPKcS1_ib T
|
||||
_ZN11__sanitizer23ReportUnrecognizedFlagsEv T
|
||||
_ZN11__sanitizer23StartReportDeadlySignalEv T
|
||||
_ZN11__sanitizer23internal_simple_strtollEPKcPPci T
|
||||
_ZN11__sanitizer23stoptheworld_tracer_pidE B 8
|
||||
_ZN11__sanitizer24ParseSymbolizeDataOutputEPKcPNS_8DataInfoE T
|
||||
_ZN11__sanitizer24ReturnNullOrDieOnFailure12OnBadRequestEv T
|
||||
_ZN11__sanitizer24ReturnNullOrDieOnFailure5OnOOMEv T
|
||||
_ZN11__sanitizer24StackDepotPut_WithHandleENS_10StackTraceE T
|
||||
_ZN11__sanitizer24internal_bzero_aligned16EPvm T
|
||||
_ZN11__sanitizer24stoptheworld_tracer_ppidE B 8
|
||||
_ZN11__sanitizer25ExtractTokenUpToDelimiterEPKcS1_PPc T
|
||||
_ZN11__sanitizer25MaybeStartBackgroudThreadEv T
|
||||
_ZN11__sanitizer25SetAllocatorMayReturnNullEb T
|
||||
_ZN11__sanitizer26CommonSanitizerReportMutexE B 1
|
||||
_ZN11__sanitizer26SetPrintfAndReportCallbackEPFvPKcE T
|
||||
_ZN11__sanitizer27SetLowLevelAllocateCallbackEPFvmmE T
|
||||
_ZN11__sanitizer31ReportAllocatorCannotReturnNullEv T
|
||||
_ZN11__sanitizer31SetSoftRssLimitExceededCallbackEPFvbE T
|
||||
_ZN11__sanitizer35CallocShouldReturnNullDueToOverflowEmm T
|
||||
_ZN11__sanitizer3DieEv T
|
||||
_ZN11__sanitizer35RemoveANSIEscapeSequencesFromStringEPc T
|
||||
_ZN11__sanitizer5AbortEv T
|
||||
_ZN11__sanitizer6AtexitEPFvvE T
|
||||
_ZN11__sanitizer6GetEnvEPKc T
|
||||
_ZN11__sanitizer6GetRSSEv T
|
||||
_ZN11__sanitizer6PrintfEPKcz T
|
||||
_ZN11__sanitizer6ReportEPKcz T
|
||||
_ZN11__sanitizer7OnPrintEPKc T
|
||||
_ZN11__sanitizer8DataInfo5ClearEv T
|
||||
_ZN11__sanitizer8DataInfoC1Ev T
|
||||
_ZN11__sanitizer8DataInfoC2Ev T
|
||||
_ZN11__sanitizer8OpenFileEPKcNS_14FileAccessModeEPi T
|
||||
_ZN11__sanitizer8RawWriteEPKc T
|
||||
_ZN11__sanitizer9CloseFileEi T
|
||||
_ZN11__sanitizer9MmapOrDieEmPKc T
|
||||
_ZN11__sanitizer9MmapOrDieEmPKcb T
|
||||
_ZN11__sanitizer9SortArrayEPjm T
|
||||
_ZN11__sanitizer9SortArrayEPmm T
|
||||
_ZN11__sanitizer9VSNPrintfEPciPKcP13__va_list_tag T
|
||||
_ZNK11__sanitizer10StackTrace5PrintEv T
|
||||
@ -270,24 +257,12 @@ _ZNK11__sanitizer16Addr2LineProcess18ReachedEndOfOutputEPKcm T
|
||||
_ZNK11__sanitizer18SuppressionContext13SuppressionAtEm T
|
||||
_ZNK11__sanitizer18SuppressionContext16SuppressionCountEv T
|
||||
_ZNK11__sanitizer18SuppressionContext18HasSuppressionTypeEPKc T
|
||||
__sanitizer_cov T
|
||||
__sanitizer_cov_dump T
|
||||
__sanitizer_cov_indir_call16 T
|
||||
__sanitizer_cov_init T
|
||||
__sanitizer_cov_module_init T
|
||||
__sanitizer_cov_trace_basic_block T
|
||||
__sanitizer_cov_trace_cmp W
|
||||
__sanitizer_cov_trace_func_enter T
|
||||
__sanitizer_cov_trace_switch W
|
||||
__sanitizer_cov_with_check T
|
||||
__sanitizer_get_coverage_guards T
|
||||
__sanitizer_get_number_of_counters T
|
||||
__sanitizer_get_total_unique_caller_callee_pairs T
|
||||
__sanitizer_get_total_unique_coverage T
|
||||
__sanitizer_maybe_open_cov_file T
|
||||
__sanitizer_get_module_and_offset_for_pc T
|
||||
__sanitizer_install_malloc_and_free_hooks T
|
||||
__sanitizer_report_error_summary W
|
||||
__sanitizer_reset_coverage T
|
||||
__sanitizer_sandbox_on_notify W
|
||||
__sanitizer_set_death_callback T
|
||||
__sanitizer_set_report_fd T
|
||||
__sanitizer_set_report_path T
|
||||
__sanitizer_update_counter_bitset_and_clear_counters T
|
||||
__sanitizer_symbolize_global T
|
||||
__sanitizer_symbolize_pc T
|
||||
|
@ -1,21 +1,27 @@
|
||||
_ZN7__ubsan11ubsan_flagsE B 24
|
||||
_ZN7__ubsan12InitAsPluginEv T
|
||||
_ZN7__ubsan12ScopedReport11InitializerC1Ev T
|
||||
_ZN7__ubsan12ScopedReport11InitializerC2Ev T
|
||||
_ZN7__ubsan12ScopedReportC1ENS_13ReportOptionsENS_8LocationENS_9ErrorTypeE T
|
||||
_ZN7__ubsan12ScopedReportC2ENS_13ReportOptionsENS_8LocationENS_9ErrorTypeE T
|
||||
_ZN7__ubsan12ScopedReportD1Ev T
|
||||
_ZN7__ubsan12ScopedReportD2Ev T
|
||||
_ZN7__ubsan14TypeCheckKindsE D 80
|
||||
_ZN7__ubsan12ignoreReportENS_14SourceLocationENS_13ReportOptionsENS_9ErrorTypeE T
|
||||
_ZN7__ubsan14IsPCSuppressedENS_9ErrorTypeEmPKc T
|
||||
_ZN7__ubsan14TypeCheckKindsE D 88
|
||||
_ZN7__ubsan15InitializeFlagsEv T
|
||||
_ZN7__ubsan16InitAsStandaloneEv T
|
||||
_ZN7__ubsan16checkDynamicTypeEPvS0_m T
|
||||
_ZN7__ubsan18RegisterUbsanFlagsEPN11__sanitizer10FlagParserEPNS_5FlagsE T
|
||||
_ZN7__ubsan21IsVptrCheckSuppressedEPKc T
|
||||
_ZN7__ubsan21getSymbolizedLocationEm T
|
||||
_ZN7__ubsan22GetSanititizerToolNameEv T
|
||||
_ZN7__ubsan22InitializeSuppressionsEv T
|
||||
_ZN7__ubsan27InitAsStandaloneIfNecessaryEv T
|
||||
_ZN7__ubsan28MaybeCallUbsanDefaultOptionsEv T
|
||||
_ZN7__ubsan28getDynamicTypeInfoFromObjectEPv T
|
||||
_ZN7__ubsan28getDynamicTypeInfoFromVtableEPv T
|
||||
_ZN7__ubsan31GetStackTraceWithPcBpAndContextEPN11__sanitizer18BufferedStackTraceEmmmPvb T
|
||||
_ZN7__ubsan4DiagD1Ev T
|
||||
_ZN7__ubsan4DiagD2Ev T
|
||||
_ZN7__ubsan5Flags11SetDefaultsEv T
|
||||
@ -27,10 +33,9 @@ __ubsan_default_options W
|
||||
__ubsan_handle_add_overflow T
|
||||
__ubsan_handle_add_overflow_abort T
|
||||
__ubsan_handle_builtin_unreachable T
|
||||
__ubsan_handle_cfi_bad_icall T
|
||||
__ubsan_handle_cfi_bad_icall_abort T
|
||||
__ubsan_handle_cfi_bad_type T
|
||||
__ubsan_handle_cfi_bad_type_abort T
|
||||
__ubsan_handle_cfi_check_fail T
|
||||
__ubsan_handle_cfi_check_fail_abort T
|
||||
__ubsan_handle_divrem_overflow T
|
||||
__ubsan_handle_divrem_overflow_abort T
|
||||
__ubsan_handle_dynamic_type_cache_miss T
|
||||
@ -39,6 +44,8 @@ __ubsan_handle_float_cast_overflow T
|
||||
__ubsan_handle_float_cast_overflow_abort T
|
||||
__ubsan_handle_function_type_mismatch T
|
||||
__ubsan_handle_function_type_mismatch_abort T
|
||||
__ubsan_handle_invalid_builtin T
|
||||
__ubsan_handle_invalid_builtin_abort T
|
||||
__ubsan_handle_load_invalid_value T
|
||||
__ubsan_handle_load_invalid_value_abort T
|
||||
__ubsan_handle_missing_return T
|
||||
@ -48,16 +55,22 @@ __ubsan_handle_negate_overflow T
|
||||
__ubsan_handle_negate_overflow_abort T
|
||||
__ubsan_handle_nonnull_arg T
|
||||
__ubsan_handle_nonnull_arg_abort T
|
||||
__ubsan_handle_nonnull_return T
|
||||
__ubsan_handle_nonnull_return_abort T
|
||||
__ubsan_handle_nonnull_return_v1 T
|
||||
__ubsan_handle_nonnull_return_v1_abort T
|
||||
__ubsan_handle_nullability_arg T
|
||||
__ubsan_handle_nullability_arg_abort T
|
||||
__ubsan_handle_nullability_return_v1 T
|
||||
__ubsan_handle_nullability_return_v1_abort T
|
||||
__ubsan_handle_out_of_bounds T
|
||||
__ubsan_handle_out_of_bounds_abort T
|
||||
__ubsan_handle_pointer_overflow T
|
||||
__ubsan_handle_pointer_overflow_abort T
|
||||
__ubsan_handle_shift_out_of_bounds T
|
||||
__ubsan_handle_shift_out_of_bounds_abort T
|
||||
__ubsan_handle_sub_overflow T
|
||||
__ubsan_handle_sub_overflow_abort T
|
||||
__ubsan_handle_type_mismatch T
|
||||
__ubsan_handle_type_mismatch_abort T
|
||||
__ubsan_handle_type_mismatch_v1 T
|
||||
__ubsan_handle_type_mismatch_v1_abort T
|
||||
__ubsan_handle_vla_bound_not_positive T
|
||||
__ubsan_handle_vla_bound_not_positive_abort T
|
||||
__ubsan_vptr_type_cache B 1024
|
||||
|
@ -1 +1 @@
|
||||
4aee2386082411a02cfd9f34cb1af12caedea51e
|
||||
181889c6d4af01eed6f89b2df496b83896d18034
|
||||
|
@ -1,9 +1,9 @@
|
||||
LICENSE := LGPL
|
||||
VERSION := 6.3.0
|
||||
VERSION := 8.3.0
|
||||
DOWNLOADS := sanitizer.archive
|
||||
|
||||
URL(sanitizer) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.bz2
|
||||
SHA(sanitizer) := f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
|
||||
URL(sanitizer) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
|
||||
SHA(sanitizer) := 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
|
||||
DIR(sanitizer) := src/lib/sanitizer
|
||||
SIG(sanitizer) := ${URL(gcc)}
|
||||
KEY(sanitizer) := GNU
|
||||
|
@ -4,24 +4,24 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
|
||||
|
||||
---
|
||||
sanitizer_common/sanitizer_genode.cc | 332 ++++++++++++++++++++
|
||||
sanitizer_common/sanitizer_genode.cc | 330 ++++++++++++++++++++
|
||||
sanitizer_common/sanitizer_internal_defs.h | 6
|
||||
sanitizer_common/sanitizer_platform.h | 4
|
||||
sanitizer_common/sanitizer_posix.h | 2
|
||||
sanitizer_common/sanitizer_printf.cc | 2
|
||||
sanitizer_common/sanitizer_stacktrace.h | 2
|
||||
sanitizer_common/sanitizer_symbolizer_libcdep.cc | 5
|
||||
.../sanitizer_symbolizer_posix_libcdep.cc | 20 +
|
||||
sanitizer_common/sanitizer_symbolizer_libcdep.cc | 10 -
|
||||
.../sanitizer_symbolizer_posix_libcdep.cc | 31 +-
|
||||
ubsan/ubsan_diag.cc | 4
|
||||
ubsan/ubsan_type_hash_itanium.cc | 2
|
||||
9 files changed, 366 insertions(+), 11 deletions(-)
|
||||
9 files changed, 376 insertions(+), 15 deletions(-)
|
||||
create mode 100644 sanitizer_common/sanitizer_genode.cc
|
||||
|
||||
diff --git a/sanitizer_common/sanitizer_genode.cc b/sanitizer_common/sanitizer_genode.cc
|
||||
new file mode 100644
|
||||
index 0000000..1f549e5
|
||||
index 0000000..cd2bc92
|
||||
--- /dev/null
|
||||
+++ b/sanitizer_common/sanitizer_genode.cc
|
||||
@@ -0,0 +1,332 @@
|
||||
@@ -0,0 +1,330 @@
|
||||
+/*
|
||||
+ * \brief Genode-specific functions from sanitizer_common.h
|
||||
+ * and sanitizer_libc.h
|
||||
@ -41,9 +41,11 @@ index 0000000..1f549e5
|
||||
+#include <base/log.h>
|
||||
+#include <base/buffered_output.h>
|
||||
+
|
||||
+#include "sanitizer_common.h"
|
||||
+#include "sanitizer_file.h"
|
||||
+#include "sanitizer_platform.h"
|
||||
+
|
||||
+#include "sanitizer_common.h"
|
||||
+using namespace __sanitizer;
|
||||
+
|
||||
+
|
||||
+extern int genode_atexit(void (*func)(void));
|
||||
@ -53,21 +55,27 @@ index 0000000..1f549e5
|
||||
+static constexpr bool verbose = false;
|
||||
+
|
||||
+
|
||||
+struct Sanitizer_env
|
||||
+/*
|
||||
+ * Cannot use 'Genode::Constructible' for the environment, because its
|
||||
+ * constructor would need to be called before 'sanitizer_init()'.
|
||||
+ */
|
||||
+
|
||||
+static Genode::Env *genode_env;
|
||||
+
|
||||
+static Genode::Heap &heap()
|
||||
+{
|
||||
+ Genode::Env &env;
|
||||
+ Genode::Heap heap { env.ram(), env.rm() };
|
||||
+ struct Sanitizer_not_initialized { };
|
||||
+ if (!genode_env) throw Sanitizer_not_initialized();
|
||||
+
|
||||
+ Sanitizer_env(Genode::Env &env) : env(env) { }
|
||||
+};
|
||||
+
|
||||
+
|
||||
+static Genode::Constructible<Sanitizer_env> sanitizer_env;
|
||||
+ static Genode::Heap instance(genode_env->ram(), genode_env->rm());
|
||||
+ return instance;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void sanitizer_init(Genode::Env &env)
|
||||
+{
|
||||
+ sanitizer_env.construct(env);
|
||||
+Genode::log("sanitizer_init()");
|
||||
+ genode_env = &env;
|
||||
+}
|
||||
+
|
||||
+
|
||||
@ -87,6 +95,11 @@ index 0000000..1f549e5
|
||||
+}
|
||||
+
|
||||
+
|
||||
+uptr __sanitizer::GetThreadSelf() {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+bool __sanitizer::SupportsColoredOutput(fd_t fd)
|
||||
+{
|
||||
+ if (fd == 2)
|
||||
@ -110,13 +123,6 @@ index 0000000..1f549e5
|
||||
+}
|
||||
+
|
||||
+
|
||||
+bool __sanitizer::FileExists(const char *filename)
|
||||
+{
|
||||
+ Genode::error("sanitizer: ", __func__, " called");
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+const char *__sanitizer::GetEnv(const char *name)
|
||||
+{
|
||||
+ if (verbose)
|
||||
@ -184,15 +190,15 @@ index 0000000..1f549e5
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void *__sanitizer::MmapOrDie(uptr size, const char *mem_type)
|
||||
+void *__sanitizer::MmapOrDie(uptr size, const char *mem_type, bool raw_report)
|
||||
+{
|
||||
+ size = RoundUpTo(size, GetPageSizeCached());
|
||||
+
|
||||
+ void *res = nullptr;
|
||||
+ sanitizer_env->heap.alloc(size, &res);
|
||||
+ heap().alloc(size, &res);
|
||||
+
|
||||
+ if (res == nullptr)
|
||||
+ ReportMmapFailureAndDie(size, mem_type, "allocate", 0);
|
||||
+ ReportMmapFailureAndDie(size, mem_type, "allocate", 0, raw_report);
|
||||
+
|
||||
+ IncreaseTotalMmap(size);
|
||||
+ return res;
|
||||
@ -203,7 +209,7 @@ index 0000000..1f549e5
|
||||
+{
|
||||
+ if (!addr || !size) return;
|
||||
+
|
||||
+ sanitizer_env->heap.free(addr, size);
|
||||
+ heap().free(addr, size);
|
||||
+
|
||||
+ DecreaseTotalMmap(size);
|
||||
+}
|
||||
@ -317,14 +323,6 @@ index 0000000..1f549e5
|
||||
+}
|
||||
+
|
||||
+
|
||||
+uptr __sanitizer::GetListOfModules(LoadedModule *modules, uptr max_modules,
|
||||
+ string_predicate_t filter)
|
||||
+{
|
||||
+ Genode::error("sanitizer: ", __func__, " called");
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* sanitizer_libc.h */
|
||||
+
|
||||
+
|
||||
@ -355,7 +353,7 @@ index 0000000..1f549e5
|
||||
+ return false;
|
||||
+}
|
||||
diff --git a/sanitizer_common/sanitizer_internal_defs.h b/sanitizer_common/sanitizer_internal_defs.h
|
||||
index d76ed75..bab2fdc 100644
|
||||
index edd6a21..a927498 100644
|
||||
--- a/sanitizer_common/sanitizer_internal_defs.h
|
||||
+++ b/sanitizer_common/sanitizer_internal_defs.h
|
||||
@@ -13,6 +13,8 @@
|
||||
@ -367,20 +365,24 @@ index d76ed75..bab2fdc 100644
|
||||
#ifndef SANITIZER_DEBUG
|
||||
# define SANITIZER_DEBUG 0
|
||||
#endif
|
||||
@@ -101,9 +103,9 @@ typedef uptr OFF_T;
|
||||
@@ -152,13 +154,13 @@ typedef uptr OFF_T;
|
||||
typedef u64 OFF64_T;
|
||||
|
||||
#if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC
|
||||
-typedef uptr operator_new_size_type;
|
||||
+typedef size_t operator_new_size_type;
|
||||
#else
|
||||
# if defined(__s390__) && !defined(__s390x__)
|
||||
// Special case: 31-bit s390 has unsigned long as size_t.
|
||||
typedef unsigned long operator_new_size_type;
|
||||
# else
|
||||
-typedef u32 operator_new_size_type;
|
||||
+typedef size_t operator_new_size_type;
|
||||
# endif
|
||||
#endif
|
||||
} // namespace __sanitizer
|
||||
|
||||
diff --git a/sanitizer_common/sanitizer_platform.h b/sanitizer_common/sanitizer_platform.h
|
||||
index 7d0ff28..e096ee9 100644
|
||||
index 1eb4d0c..95701c2 100644
|
||||
--- a/sanitizer_common/sanitizer_platform.h
|
||||
+++ b/sanitizer_common/sanitizer_platform.h
|
||||
@@ -11,10 +11,12 @@
|
||||
@ -388,25 +390,41 @@ index 7d0ff28..e096ee9 100644
|
||||
#define SANITIZER_PLATFORM_H
|
||||
|
||||
+#if 0
|
||||
#if !defined(__linux__) && !defined(__FreeBSD__) && \
|
||||
!defined(__APPLE__) && !defined(_WIN32)
|
||||
#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \
|
||||
!defined(__APPLE__) && !defined(_WIN32) && !defined(__Fuchsia__)
|
||||
# error "This operating system is not supported"
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if defined(__linux__)
|
||||
# define SANITIZER_LINUX 1
|
||||
@@ -59,7 +61,7 @@
|
||||
# define SANITIZER_ANDROID 0
|
||||
@@ -90,7 +92,7 @@
|
||||
#endif
|
||||
|
||||
-#define SANITIZER_POSIX (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC)
|
||||
+#define SANITIZER_POSIX (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || 1)
|
||||
#define SANITIZER_POSIX \
|
||||
- (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD)
|
||||
+ (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD || 1)
|
||||
|
||||
#if __LP64__ || defined(_WIN64)
|
||||
# define SANITIZER_WORDSIZE 64
|
||||
diff --git a/sanitizer_common/sanitizer_posix.h b/sanitizer_common/sanitizer_posix.h
|
||||
index 9626654..2afbdc0 100644
|
||||
--- a/sanitizer_common/sanitizer_posix.h
|
||||
+++ b/sanitizer_common/sanitizer_posix.h
|
||||
@@ -80,9 +80,11 @@ int my_pthread_attr_getstack(void *attr, void **addr, uptr *size);
|
||||
// A routine named real_sigaction() must be implemented by each sanitizer in
|
||||
// order for internal_sigaction() to bypass interceptors.
|
||||
int internal_sigaction(int signum, const void *act, void *oldact);
|
||||
+#if 0
|
||||
void internal_sigfillset(__sanitizer_sigset_t *set);
|
||||
void internal_sigemptyset(__sanitizer_sigset_t *set);
|
||||
bool internal_sigismember(__sanitizer_sigset_t *set, int signum);
|
||||
+#endif
|
||||
|
||||
uptr internal_execve(const char *filename, char *const argv[],
|
||||
char *const envp[]);
|
||||
diff --git a/sanitizer_common/sanitizer_printf.cc b/sanitizer_common/sanitizer_printf.cc
|
||||
index 6688610..6efd98b 100644
|
||||
index 1456c76..d6d46b3 100644
|
||||
--- a/sanitizer_common/sanitizer_printf.cc
|
||||
+++ b/sanitizer_common/sanitizer_printf.cc
|
||||
@@ -16,7 +16,9 @@
|
||||
@ -420,7 +438,7 @@ index 6688610..6efd98b 100644
|
||||
|
||||
#if SANITIZER_WINDOWS && defined(_MSC_VER) && _MSC_VER < 1800 && \
|
||||
diff --git a/sanitizer_common/sanitizer_stacktrace.h b/sanitizer_common/sanitizer_stacktrace.h
|
||||
index 7f22455..d16d758 100644
|
||||
index 31e99f6..47c7204 100644
|
||||
--- a/sanitizer_common/sanitizer_stacktrace.h
|
||||
+++ b/sanitizer_common/sanitizer_stacktrace.h
|
||||
@@ -31,7 +31,7 @@ static const u32 kStackTraceMax = 256;
|
||||
@ -433,7 +451,7 @@ index 7f22455..d16d758 100644
|
||||
|
||||
struct StackTrace {
|
||||
diff --git a/sanitizer_common/sanitizer_symbolizer_libcdep.cc b/sanitizer_common/sanitizer_symbolizer_libcdep.cc
|
||||
index 4264b5e..52fc18d 100644
|
||||
index df93441..fd65874 100644
|
||||
--- a/sanitizer_common/sanitizer_symbolizer_libcdep.cc
|
||||
+++ b/sanitizer_common/sanitizer_symbolizer_libcdep.cc
|
||||
@@ -9,6 +9,8 @@
|
||||
@ -445,25 +463,38 @@ index 4264b5e..52fc18d 100644
|
||||
#include "sanitizer_allocator_internal.h"
|
||||
#include "sanitizer_internal_defs.h"
|
||||
#include "sanitizer_symbolizer_internal.h"
|
||||
@@ -146,6 +148,8 @@ bool Symbolizer::FindModuleNameAndOffsetForAddress(uptr address,
|
||||
@@ -167,7 +169,7 @@ void Symbolizer::RefreshModules() {
|
||||
RAW_CHECK(modules_.size() > 0);
|
||||
modules_fresh_ = true;
|
||||
}
|
||||
|
||||
LoadedModule *Symbolizer::FindModuleForAddress(uptr address) {
|
||||
-
|
||||
+#if 0
|
||||
static const LoadedModule *SearchForModule(const ListOfModules &modules,
|
||||
uptr address) {
|
||||
for (uptr i = 0; i < modules.size(); i++) {
|
||||
@@ -177,8 +179,11 @@ static const LoadedModule *SearchForModule(const ListOfModules &modules,
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) {
|
||||
+ Genode::error("sanitizer: ", __func__, " called");
|
||||
+ return 0;
|
||||
+#if 0
|
||||
bool modules_were_reloaded = false;
|
||||
if (!modules_fresh_) {
|
||||
for (uptr i = 0; i < n_modules_; i++)
|
||||
@@ -170,6 +174,7 @@ LoadedModule *Symbolizer::FindModuleForAddress(uptr address) {
|
||||
modules_fresh_ = false;
|
||||
return FindModuleForAddress(address);
|
||||
RefreshModules();
|
||||
@@ -202,6 +207,7 @@ const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) {
|
||||
module = SearchForModule(fallback_modules_, address);
|
||||
}
|
||||
return module;
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
// For now we assume the following protocol:
|
||||
diff --git a/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc b/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
|
||||
index e4ff525..793cbb1 100644
|
||||
index afd6bbe..9a34d2f 100644
|
||||
--- a/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
|
||||
+++ b/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
|
||||
@@ -10,6 +10,9 @@
|
||||
@ -476,13 +507,14 @@ index e4ff525..793cbb1 100644
|
||||
#include "sanitizer_platform.h"
|
||||
#if SANITIZER_POSIX
|
||||
#include "sanitizer_allocator_internal.h"
|
||||
@@ -23,12 +26,12 @@
|
||||
#include "sanitizer_symbolizer_internal.h"
|
||||
@@ -25,13 +28,14 @@
|
||||
#include "sanitizer_symbolizer_libbacktrace.h"
|
||||
#include "sanitizer_symbolizer_mac.h"
|
||||
-
|
||||
|
||||
+#if 0
|
||||
#include <dlfcn.h> // for dlsym()
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
@ -491,9 +523,40 @@ index e4ff525..793cbb1 100644
|
||||
#if SANITIZER_MAC
|
||||
#include <util.h> // for forkpty()
|
||||
#endif // SANITIZER_MAC
|
||||
@@ -60,6 +63,10 @@ const char *DemangleCXXABI(const char *name) {
|
||||
}
|
||||
@@ -61,7 +65,7 @@ const char *DemangleCXXABI(const char *name) {
|
||||
|
||||
return name;
|
||||
}
|
||||
-
|
||||
+#if 0
|
||||
// As of now, there are no headers for the Swift runtime. Once they are
|
||||
// present, we will weakly link since we do not require Swift runtime to be
|
||||
// linked.
|
||||
@@ -92,14 +96,16 @@ const char *DemangleSwift(const char *name) {
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
const char *DemangleSwiftAndCXX(const char *name) {
|
||||
if (!name) return nullptr;
|
||||
+#if 0
|
||||
if (const char *swift_demangled_name = DemangleSwift(name))
|
||||
return swift_demangled_name;
|
||||
+#endif
|
||||
return DemangleCXXABI(name);
|
||||
}
|
||||
-
|
||||
+#if 0
|
||||
static bool CreateTwoHighNumberedPipes(int *infd_, int *outfd_) {
|
||||
int *infd = NULL;
|
||||
int *outfd = NULL;
|
||||
@@ -139,8 +145,12 @@ static bool CreateTwoHighNumberedPipes(int *infd_, int *outfd_) {
|
||||
outfd_[1] = outfd[1];
|
||||
return true;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
bool SymbolizerProcess::StartSymbolizerSubprocess() {
|
||||
+ Genode::error("sanitizer: ", __func__, " called");
|
||||
+ return false;
|
||||
@ -502,7 +565,7 @@ index e4ff525..793cbb1 100644
|
||||
if (!FileExists(path_)) {
|
||||
if (!reported_invalid_path_) {
|
||||
Report("WARNING: invalid path to external symbolizer!\n");
|
||||
@@ -182,6 +189,7 @@ bool SymbolizerProcess::StartSymbolizerSubprocess() {
|
||||
@@ -246,6 +256,7 @@ bool SymbolizerProcess::StartSymbolizerSubprocess() {
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -510,7 +573,7 @@ index e4ff525..793cbb1 100644
|
||||
}
|
||||
|
||||
class Addr2LineProcess : public SymbolizerProcess {
|
||||
@@ -376,7 +384,7 @@ const char *Symbolizer::PlatformDemangle(const char *name) {
|
||||
@@ -443,7 +454,7 @@ const char *Symbolizer::PlatformDemangle(const char *name) {
|
||||
}
|
||||
|
||||
void Symbolizer::PlatformPrepareForSandboxing() {}
|
||||
@ -519,7 +582,7 @@ index e4ff525..793cbb1 100644
|
||||
static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) {
|
||||
const char *path = common_flags()->external_symbolizer_path;
|
||||
const char *binary_name = path ? StripModuleName(path) : "";
|
||||
@@ -424,7 +432,7 @@ static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) {
|
||||
@@ -491,7 +502,7 @@ static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) {
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
@ -528,7 +591,7 @@ index e4ff525..793cbb1 100644
|
||||
static void ChooseSymbolizerTools(IntrusiveList<SymbolizerTool> *list,
|
||||
LowLevelAllocator *allocator) {
|
||||
if (!common_flags()->symbolize) {
|
||||
@@ -441,11 +449,11 @@ static void ChooseSymbolizerTools(IntrusiveList<SymbolizerTool> *list,
|
||||
@@ -510,11 +521,11 @@ static void ChooseSymbolizerTools(IntrusiveList<SymbolizerTool> *list,
|
||||
list->push_back(tool);
|
||||
return;
|
||||
}
|
||||
@ -542,8 +605,18 @@ index e4ff525..793cbb1 100644
|
||||
#if SANITIZER_MAC
|
||||
VReport(2, "Using dladdr symbolizer.\n");
|
||||
list->push_back(new(*allocator) DlAddrSymbolizer());
|
||||
@@ -530,7 +541,9 @@ Symbolizer *Symbolizer::PlatformInit() {
|
||||
|
||||
void Symbolizer::LateInitialize() {
|
||||
Symbolizer::GetOrInit();
|
||||
+#if 0
|
||||
InitializeSwiftDemangler();
|
||||
+#endif
|
||||
}
|
||||
|
||||
} // namespace __sanitizer
|
||||
diff --git a/ubsan/ubsan_diag.cc b/ubsan/ubsan_diag.cc
|
||||
index 1197f83..8ffa8fe 100644
|
||||
index 978d966..7d38a9b 100644
|
||||
--- a/ubsan/ubsan_diag.cc
|
||||
+++ b/ubsan/ubsan_diag.cc
|
||||
@@ -20,7 +20,9 @@
|
||||
@ -556,27 +629,14 @@ index 1197f83..8ffa8fe 100644
|
||||
|
||||
using namespace __ubsan;
|
||||
|
||||
@@ -204,8 +206,10 @@ static void renderText(const char *Message, const Diag::Arg *Args) {
|
||||
@@ -209,8 +211,10 @@ static void RenderText(InternalScopedString *Buffer, const char *Message,
|
||||
#if SANITIZER_WINDOWS
|
||||
sprintf_s(Buffer, sizeof(Buffer), "%Lg", (long double)A.Float);
|
||||
sprintf_s(FloatBuffer, sizeof(FloatBuffer), "%Lg", (long double)A.Float);
|
||||
#else
|
||||
+#if 0
|
||||
snprintf(Buffer, sizeof(Buffer), "%Lg", (long double)A.Float);
|
||||
snprintf(FloatBuffer, sizeof(FloatBuffer), "%Lg", (long double)A.Float);
|
||||
#endif
|
||||
+#endif
|
||||
Printf("%s", Buffer);
|
||||
break;
|
||||
}
|
||||
diff --git a/ubsan/ubsan_type_hash_itanium.cc b/ubsan/ubsan_type_hash_itanium.cc
|
||||
index e4f1334..57e78cd 100644
|
||||
--- a/ubsan/ubsan_type_hash_itanium.cc
|
||||
+++ b/ubsan/ubsan_type_hash_itanium.cc
|
||||
@@ -113,7 +113,7 @@ static __ubsan::HashValue *getTypeCacheHashTableBucket(__ubsan::HashValue V) {
|
||||
static bool isDerivedFromAtOffset(const abi::__class_type_info *Derived,
|
||||
const abi::__class_type_info *Base,
|
||||
sptr Offset) {
|
||||
- if (Derived->__type_name == Base->__type_name)
|
||||
+ if (internal_strcmp(Derived->__type_name, Base->__type_name) == 0)
|
||||
return Offset == 0;
|
||||
|
||||
if (const abi::__si_class_type_info *SI =
|
||||
Buffer->append("%s", FloatBuffer);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user