Enable the address sanitizer in our CI to catch memory corruption immediately (#1014) (#1034)

This commit is contained in:
HeyImChris 2022-02-19 00:12:44 -08:00 коммит произвёл GitHub
Родитель 1465f4fdac
Коммит f065baa6ee
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
23 изменённых файлов: 432 добавлений и 54 удалений

Просмотреть файл

@ -0,0 +1,25 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow
*/
'use strict';
import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
import type {ViewProps} from '../Components/View/ViewPropTypes';
const {requireNativeComponent} = require('react-native');
type NativeProps = $ReadOnly<{|
...ViewProps,
|}>;
const RCTAddressSanitizerCrash: HostComponent<NativeProps> = requireNativeComponent<NativeProps>(
'RCTAddressSanitizerCrash',
);
module.exports = RCTAddressSanitizerCrash;

Просмотреть файл

@ -0,0 +1,12 @@
/*
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <React/RCTUIKit.h>
#import <React/RCTBridge.h>
@interface RCTAddressSanitizerCrashManager : NSObject <RCTBridgeModule>
@end

Просмотреть файл

@ -0,0 +1,18 @@
//
// RCTAddressSanitizerCrashManager.mm
// Pods
//
#import "RCTAddressSanitizerCrashManager.h"
@implementation RCTAddressSanitizerCrashManager
RCT_EXPORT_MODULE(ASANCrash)
RCT_EXPORT_METHOD(invokeMemoryCrash) {
char *s = (char*)malloc(100);
free(s);
strcpy(s, "Hello world!"); // AddressSanitizer: heap-use-after-free
}
@end

Просмотреть файл

@ -506,12 +506,14 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost-for-react-native: d5ad1140010aa8cb622323a781ecbeab4425d19a
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 0ea4559a49682230337df966e735d6cc7760108e
FBLazyVector: 5a2f9592b6a73a6058558956d167bb1ad684c7c2
FBReactNativeSpec: 21b068aad009ce37947cf3ca75d38a97910dbb5a
Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c
DoubleConversion: ed15e075aa758ac0e4c1f8b830bd4e4d40d669e8
FBLazyVector: 11bc87f472827a73ff114494b2e80e0b805a32d7
FBReactNativeSpec: f58c30a99b669cb145e7a8c0c0c721de83951240
Flipper: 30e8eeeed6abdc98edaf32af0cda2f198be4b733
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 57ffbe81ef95306cc9e69c4aa3aeeeeb58a6a28c
Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
Flipper-Folly: 83af37379faa69497529e414bd43fbfc7cae259a
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154
@ -519,34 +521,35 @@ SPEC CHECKSUMS:
glog: 0dc7efada961c0793012970b60faebbd58b0decb
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
RCT-Folly: b3998425a8ee9f695f57a204dc494534246f0fe9
RCTRequired: 476b7e9b6fe8f6795b3c2a32613eda0f2bf70659
RCTTypeSafety: 8a74abf2ade4e1e464831b6d63f80b89107fc069
React: fbab5f0bbf2f3fdc47b20d6f8fb1f9dda7814053
React-callinvoker: 5da8f570452f13cf7e5faf216092f5da82da3d11
React-Core: 7d84e349d0ca6e14693175ac5aeb72371433d977
React-CoreModules: 64e9eaf3e56585233b99ddcdab4eeda0f3947b33
React-cxxreact: 4318977ebf4b4bdf9d1db19deb079121659925dd
React-jsi: d57227c937e7658c0d565370790124c23c793f35
React-jsiexecutor: c3d1155f35163d8c077b6767dad18a41913e3dcd
React-jsinspector: 6593643f36af11dab5f53396df73cb2284fd5c9a
React-perflogger: fdfe29e7772de8ffb6f2839f10380c985bca4687
React-RCTActionSheet: 53bce013367652e49dbb128a4236f76973264710
React-RCTAnimation: f431c95d12262f7690137d8d5071b12eede8af62
React-RCTBlob: 88a533c439c2f02d45d8fdbba14d3cf54737e778
React-RCTImage: a6305a92c166c5f8be14c2624918eb84b8c93651
React-RCTLinking: ab6174291d7568071f8511a4d4d78eedf16b976e
React-RCTNetwork: 74d93063da8eca72f153e82a65308c7b3efc37f3
React-RCTPushNotification: 69848dd6ac04a6fc876030f9ecb40fa88fdc1cec
React-RCTSettings: 66c9324eb471c4b718784c39e0aaff90164ddcbf
React-RCTTest: 8486f64ea7150ac6bf48794824fa9373527b0356
React-RCTText: 7f9a1d29e7fe6279e9bc9eec6d447a0d45f392de
React-RCTVibration: 027f7cf1e570a3e851dfceda2dbbd635af623ca0
React-runtimeexecutor: 80e779465c0d81aa5bd7b571ea2981cf7e86cf34
React-TurboModuleCxx-RNW: 1804ad49cbaff86a2e4ee712711e521f1ae2cdd3
React-TurboModuleCxx-WinRTPort: 0bda8ea2b91c4950286d01ac6036d8d52b294624
ReactCommon: 9dd2d2d804057ebba91603459b31c6f03a25c51c
Yoga: d40948211a16713378654fe5d445c25048030bda
RCT-Folly: 5c589d0de10e841479ad79352fae591dc0e9533a
RCTRequired: 2eb1355625e25d08081cfe239db7d3874d77d208
RCTTypeSafety: 9f298b5aa98b080b67792676b6243f1ca032520c
React: 3cd3b5138e36d870bfefaf4a9f0e8d4d658cf499
React-callinvoker: bfbb455c76da9a24732560d956a4458057bb1021
React-Core: 160b28e71f337fa24c27937cecbeebce7af1693f
React-CoreModules: 38f6c3f85421cbbe43f26fb7eec281269f502fe1
React-cxxreact: c72a2ce5d5fa068fe72130d2530caeb8cf6e6790
React-jsi: c6a502974929a68d0c706dec909de949d3a184cf
React-jsiexecutor: 6194311bab350a51c265c42424ce3377b58e776b
React-jsinspector: 98a8edfdf1a77275d1e1ad8832ed2ca6ebe4ea61
React-logger: 745a29a1f97e1725bab7888b8d501dda06b7f485
React-perflogger: 3dcb37ac059350488c74211912731f88d4207b9a
React-RCTActionSheet: aca58af0c729d4d70e2e25565fbd6f6322b18764
React-RCTAnimation: 18e68a8ba438155cefe4b3fb91450492036aca48
React-RCTBlob: ee8067d9c6af4557a9bde315e91bac756498e91c
React-RCTImage: a4167a4967505eaa04a82f5b9573065c30ecf69e
React-RCTLinking: d9034395129c1e4d9c7e60c9deb5b987daf79554
React-RCTNetwork: 80bfb1e3f3498c067293e709a78ad07355a5b05c
React-RCTPushNotification: 899e34163eb7e632fa5164f2c1a2b8e7fb02e7a3
React-RCTSettings: 8049c8ffdd76393479d731ab350d6fd0550a7549
React-RCTTest: c2d9a4516b734322e8df43d192cc3db97d58b092
React-RCTText: 9f435bd5c5f631bf791bf60e501780192ec376af
React-RCTVibration: ed1e5e188b6ed93739d39bc23a20aa87d7eb47f0
React-runtimeexecutor: c433f9ba42e6bcc0bd5e42d2710538f3591edc02
React-TurboModuleCxx-RNW: f2e32cbfced49190a61d66c993a8975de79a158a
React-TurboModuleCxx-WinRTPort: 523c514e00e9136f0d048fdce302e976e24357f1
ReactCommon: 57264a0de7cd051c3495c78775056e8582988388
Yoga: a4c667843470ecfe7ed3a1bc546889f4730534c7
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: fc89892d7bd92e5bb34cedc778a0e7fff4c0da86

Просмотреть файл

@ -73,7 +73,13 @@
9F15345F233AB2C4006DFE44 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9F15345E233AB2C4006DFE44 /* AppDelegate.mm */; };
9F153461233AB2C7006DFE44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F153460233AB2C7006DFE44 /* Assets.xcassets */; };
9F153467233AB2C7006DFE44 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F153466233AB2C7006DFE44 /* main.m */; };
A13DC98BDCE5EE508FFA7BE7 /* libPods-RNTester-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A355204268D03CF69ABC11D /* libPods-RNTester-macOS.a */; };
9F29408627A99ACE00AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
9F29408727A99ACE00AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
9F29408827A99ACF00AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
9F29408927A99AD000AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
9F29408A27A99AD300AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
9F29408B27A99AD400AB150A /* Debug-iOS.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */; };
AFC757F10008B167B9DCFD43 /* libPods-iosDeviceBuild.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DDE8ED7D8FB17AFA3F66FF96 /* libPods-iosDeviceBuild.a */; };
B2F2040A24E76D7600863BE1 /* ScreenshotMacOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2F2040924E76D7600863BE1 /* ScreenshotMacOS.mm */; };
CDFF3988A89A5269C488653F /* libPods-iosDeviceBuild.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 287A4762E82517B7FACCE7D3 /* libPods-iosDeviceBuild.a */; };
E59A0FBD0170A092274A6207 /* libPods-RNTesterUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72247071A1BF06D54F0FECC7 /* libPods-RNTesterUnitTests.a */; };
@ -243,7 +249,24 @@
9F153478233AB2C7006DFE44 /* RNTester-macOSIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RNTester-macOSIntegrationTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
9F15347C233AB2C7006DFE44 /* RNTesterIntegrationTests_macOS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNTesterIntegrationTests_macOS.m; sourceTree = "<group>"; };
9F15347E233AB2C7006DFE44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A112BDF7485AEF790F6D3E26 /* Pods-iosDeviceBuild.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosDeviceBuild.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iosDeviceBuild/Pods-iosDeviceBuild.debug.xcconfig"; sourceTree = "<group>"; };
9F29408327A999D200AB150A /* Debug-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug-iOS.xcconfig"; sourceTree = "<group>"; };
9F44D86927B313CA005F40CC /* Debug-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D86E27BDB80C005F40CC /* Debug_UnitTests-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug_UnitTests-iOS.xcconfig"; sourceTree = "<group>"; };
9F44D86F27BDB826005F40CC /* Debug_IntegrationTests-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug_IntegrationTests-iOS.xcconfig"; sourceTree = "<group>"; };
9F44D87027BDB840005F40CC /* Debug-UnitTests-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug-UnitTests-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D87127BDB84C005F40CC /* Debug-IntegrationTests-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug-IntegrationTests-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D87A27BDFFCD005F40CC /* Release-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D87B27BDFFCD005F40CC /* Release-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release-iOS.xcconfig"; sourceTree = "<group>"; };
9F44D87C27BDFFCD005F40CC /* Release-IntegrationTests-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release-IntegrationTests-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D87D27BDFFCD005F40CC /* Release-UnitTests-macOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release-UnitTests-macOS.xcconfig"; sourceTree = "<group>"; };
9F44D87E27BDFFCD005F40CC /* Release_UnitTests-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release_UnitTests-iOS.xcconfig"; sourceTree = "<group>"; };
9F44D87F27BDFFCD005F40CC /* Release_IntegrationTests-iOS.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release_IntegrationTests-iOS.xcconfig"; sourceTree = "<group>"; };
A3D174930AD75B12F47289E6 /* libPods-RNTester-macOSIntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester-macOSIntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
A84904C6079328ECC03280D1 /* libPods-RNTesterIntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterIntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
AB0102C840930F7AC64C3D36 /* libPods-RNTesterUnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterUnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
ABC5325C94F71908317C26A8 /* Pods-macOSBuild.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOSBuild.debug.xcconfig"; path = "Target Support Files/Pods-macOSBuild/Pods-macOSBuild.debug.xcconfig"; sourceTree = "<group>"; };
AC6DB4C70AE6C558CFE78E9D /* Pods-iosDeviceBuild.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosDeviceBuild.release.xcconfig"; path = "Target Support Files/Pods-iosDeviceBuild/Pods-iosDeviceBuild.release.xcconfig"; sourceTree = "<group>"; };
AFC451B51B7D6F0C1CAD0C18 /* Pods-RNTester-macOSIntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester-macOSIntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTester-macOSIntegrationTests/Pods-RNTester-macOSIntegrationTests.debug.xcconfig"; sourceTree = "<group>"; };
B2F2040824E76D7600863BE1 /* ScreenshotMacOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenshotMacOS.h; path = NativeModuleExample/ScreenshotMacOS.h; sourceTree = SOURCE_ROOT; };
B2F2040924E76D7600863BE1 /* ScreenshotMacOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ScreenshotMacOS.mm; path = NativeModuleExample/ScreenshotMacOS.mm; sourceTree = SOURCE_ROOT; };
B5C8E567A4E6281113811CB1 /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; };
@ -525,6 +548,7 @@
9F15345C233AB2C4006DFE44 /* RNTester-macOS */,
9F153470233AB2C7006DFE44 /* RNTester-macOSUnitTests */,
9F15347B233AB2C7006DFE44 /* RNTester-macOSIntegrationTests */,
9F29408C27A99BC600AB150A /* xcconfig */,
83CBBA001A601CBA00E9B192 /* Products */,
2DE7E7D81FB2A4F3009E225D /* Frameworks */,
571A4A20844C3BA40A3D302B /* Pods */,
@ -587,6 +611,66 @@
path = "RNTester-macOSIntegrationTests";
sourceTree = "<group>";
};
9F29408C27A99BC600AB150A /* xcconfig */ = {
isa = PBXGroup;
children = (
9F44D87227BDFFA0005F40CC /* Debug */,
9F44D87327BDFFA6005F40CC /* Release */,
);
path = xcconfig;
sourceTree = "<group>";
};
9F44D87227BDFFA0005F40CC /* Debug */ = {
isa = PBXGroup;
children = (
9F29408327A999D200AB150A /* Debug-iOS.xcconfig */,
9F44D86E27BDB80C005F40CC /* Debug_UnitTests-iOS.xcconfig */,
9F44D86F27BDB826005F40CC /* Debug_IntegrationTests-iOS.xcconfig */,
9F44D86927B313CA005F40CC /* Debug-macOS.xcconfig */,
9F44D87027BDB840005F40CC /* Debug-UnitTests-macOS.xcconfig */,
9F44D87127BDB84C005F40CC /* Debug-IntegrationTests-macOS.xcconfig */,
);
path = Debug;
sourceTree = "<group>";
};
9F44D87327BDFFA6005F40CC /* Release */ = {
isa = PBXGroup;
children = (
9F44D87B27BDFFCD005F40CC /* Release-iOS.xcconfig */,
9F44D87E27BDFFCD005F40CC /* Release_UnitTests-iOS.xcconfig */,
9F44D87F27BDFFCD005F40CC /* Release_IntegrationTests-iOS.xcconfig */,
9F44D87A27BDFFCD005F40CC /* Release-macOS.xcconfig */,
9F44D87D27BDFFCD005F40CC /* Release-UnitTests-macOS.xcconfig */,
9F44D87C27BDFFCD005F40CC /* Release-IntegrationTests-macOS.xcconfig */,
);
path = Release;
sourceTree = "<group>";
};
E23BD6487B06BD71F1A86914 /* Pods */ = {
isa = PBXGroup;
children = (
6D3E7ECE8F9BEC26E5786555 /* Pods-RNTester.debug.xcconfig */,
3DC317D3EE16C63CD9243667 /* Pods-RNTester.release.xcconfig */,
3CD3706443F2188E09CBF2D2 /* Pods-RNTesterIntegrationTests.debug.xcconfig */,
E88C98CC10E157202A961408 /* Pods-RNTesterIntegrationTests.release.xcconfig */,
C38CB0C2095A8FFDE13321E5 /* Pods-RNTesterUnitTests.debug.xcconfig */,
8735BC063632C9712E25C7D9 /* Pods-RNTesterUnitTests.release.xcconfig */,
E9CE1968E72EB97B674E80A4 /* Pods-RNTester-macOS.debug.xcconfig */,
604873ABF80DC3EE97E87CCF /* Pods-RNTester-macOS.release.xcconfig */,
AFC451B51B7D6F0C1CAD0C18 /* Pods-RNTester-macOSIntegrationTests.debug.xcconfig */,
27E7277560D64734B4F0E7D9 /* Pods-RNTester-macOSIntegrationTests.release.xcconfig */,
87D5D06CD6060D32601A10DD /* Pods-RNTester-macOSUnitTests.debug.xcconfig */,
821937C864FDA0F3C485B4A6 /* Pods-RNTester-macOSUnitTests.release.xcconfig */,
1ECF206BF13260815AAC95EA /* Pods-iosDeviceBuild.debug.xcconfig */,
AC6DB4C70AE6C558CFE78E9D /* Pods-iosDeviceBuild.release.xcconfig */,
FEC7DFC73F5A7055398F11B6 /* Pods-iosSimulatorBuild.debug.xcconfig */,
50AD031542320BFA83630EDE /* Pods-iosSimulatorBuild.release.xcconfig */,
ABC5325C94F71908317C26A8 /* Pods-macOSBuild.debug.xcconfig */,
F7DC249273A51CC8A56ED858 /* Pods-macOSBuild.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
E7DB20A022B2BA84005AC45F /* RNTesterUnitTests */ = {
isa = PBXGroup;
children = (
@ -922,6 +1006,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408B27A99AD400AB150A /* Debug-iOS.xcconfig in Resources */,
2DDEF0101F84BF7B00DBDF73 /* Images.xcassets in Resources */,
8145AE06241172D900A3F8DA /* LaunchScreen.storyboard in Resources */,
3D2AFAF51D646CF80089D1A3 /* legacy_image@2x.png in Resources */,
@ -932,6 +1017,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408A27A99AD300AB150A /* Debug-iOS.xcconfig in Resources */,
5101985B23ADA00B00118BF1 /* legacy_image@2x.png in Resources */,
9F153461233AB2C7006DFE44 /* Assets.xcassets in Resources */,
5101985723AD9EE600118BF1 /* Main.storyboard in Resources */,
@ -942,6 +1028,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408827A99ACF00AB150A /* Debug-iOS.xcconfig in Resources */,
3811324724550A8F009E988D /* RNTesterUnitTestsBundle.js in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -950,6 +1037,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408927A99AD000AB150A /* Debug-iOS.xcconfig in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -957,6 +1045,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408627A99ACE00AB150A /* Debug-iOS.xcconfig in Resources */,
E7DB20DA22B2BAA6005AC45F /* RNTesterUnitTestsBundle.js in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -965,6 +1054,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9F29408727A99ACE00AB150A /* Debug-iOS.xcconfig in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1557,7 +1647,7 @@
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 98233960D1D6A1977D1C7EAF /* Pods-RNTester.debug.xcconfig */;
baseConfigurationReference = 9F29408327A999D200AB150A /* Debug-iOS.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = RNTester/RNTester.entitlements;
@ -1603,7 +1693,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5BEC8567F3741044B6A5EFC5 /* Pods-RNTester.release.xcconfig */;
baseConfigurationReference = 9F44D87B27BDFFCD005F40CC /* Release-iOS.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@ -1822,7 +1912,7 @@
ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 ";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64";
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@ -1906,7 +1996,7 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 ";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64";
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
@ -1948,7 +2038,7 @@
};
9F15347F233AB2C7006DFE44 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2BE07A0C310D8A03C00D6F07 /* Pods-RNTester-macOS.debug.xcconfig */;
baseConfigurationReference = 9F44D86927B313CA005F40CC /* Debug-macOS.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
@ -1988,7 +2078,7 @@
};
9F153480233AB2C7006DFE44 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9AED879F1A9397646A861A9F /* Pods-RNTester-macOS.release.xcconfig */;
baseConfigurationReference = 9F44D87A27BDFFCD005F40CC /* Release-macOS.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
@ -2028,7 +2118,7 @@
};
9F153481233AB2C7006DFE44 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 406E6935B300A29BA57EE1B0 /* Pods-RNTester-macOSUnitTests.debug.xcconfig */;
baseConfigurationReference = 9F44D87027BDB840005F40CC /* Debug-UnitTests-macOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2064,7 +2154,7 @@
};
9F153482233AB2C7006DFE44 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9EAC9B16F3BA65B8E1511E5E /* Pods-RNTester-macOSUnitTests.release.xcconfig */;
baseConfigurationReference = 9F44D87D27BDFFCD005F40CC /* Release-UnitTests-macOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2100,7 +2190,7 @@
};
9F153483233AB2C7006DFE44 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3CCA44B8467CB06ACED8E0E9 /* Pods-RNTester-macOSIntegrationTests.debug.xcconfig */;
baseConfigurationReference = 9F44D87127BDB84C005F40CC /* Debug-IntegrationTests-macOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2138,7 +2228,7 @@
};
9F153484233AB2C7006DFE44 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0BFED72B21FBD987A97E30B9 /* Pods-RNTester-macOSIntegrationTests.release.xcconfig */;
baseConfigurationReference = 9F44D87C27BDFFCD005F40CC /* Release-IntegrationTests-macOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2171,7 +2261,7 @@
};
E7DB20A722B2BA84005AC45F /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 34028D6B10F47E490042EB27 /* Pods-RNTesterUnitTests.debug.xcconfig */;
baseConfigurationReference = 9F44D86E27BDB80C005F40CC /* Debug_UnitTests-iOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2207,7 +2297,7 @@
};
E7DB20A822B2BA84005AC45F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E9618482EC8608D4872A6E28 /* Pods-RNTesterUnitTests.release.xcconfig */;
baseConfigurationReference = 9F44D87E27BDFFCD005F40CC /* Release_UnitTests-iOS.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@ -2243,7 +2333,7 @@
};
E7DB215B22B2F332005AC45F /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 972A459EE6CF8CC63531A088 /* Pods-RNTesterIntegrationTests.debug.xcconfig */;
baseConfigurationReference = 9F44D86F27BDB826005F40CC /* Debug_IntegrationTests-iOS.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;
@ -2281,7 +2371,7 @@
};
E7DB215C22B2F332005AC45F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7D51F73F0DA20287418D98BD /* Pods-RNTesterIntegrationTests.release.xcconfig */;
baseConfigurationReference = 9F44D87F27BDFFCD005F40CC /* Release_IntegrationTests-iOS.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;

Просмотреть файл

@ -40,7 +40,9 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "NO">
shouldUseLaunchSchemeArgsEnv = "NO"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"

Просмотреть файл

@ -26,7 +26,9 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "NO">
shouldUseLaunchSchemeArgsEnv = "NO"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@ -70,6 +72,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"

Просмотреть файл

@ -26,7 +26,9 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "NO">
shouldUseLaunchSchemeArgsEnv = "NO"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@ -70,6 +72,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"

Просмотреть файл

@ -40,7 +40,9 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
shouldUseLaunchSchemeArgsEnv = "YES"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@ -89,6 +91,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
enableAddressSanitizer = "YES"
enableASanStackUseAfterReturn = "YES"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"

Просмотреть файл

@ -0,0 +1,37 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict-local
*/
import type {Node} from 'React';
import {NativeModules, Button} from 'react-native';
import React from 'react';
const {ASANCrash} = NativeModules;
exports.displayName = (undefined: ?string);
exports.framework = 'React';
exports.title = 'ASAN Crash';
exports.category = 'Basic';
exports.description = 'ASAN Crash examples.';
exports.examples = [
{
title: 'Native Address Sanitizer crash',
render(): Node {
return (
<Button
title="Native Address Sanitizer crash"
onPress={() => {
ASANCrash.invokeMemoryCrash();
}}
/>
);
},
},
];

Просмотреть файл

@ -256,6 +256,11 @@ const APIExamples: Array<RNTesterExample> = [
module: require('../examples/Crash/CrashExample'),
supportsTVOS: false,
},
{
key: 'ASANCrashExample',
module: require('../examples/ASAN/ASANCrashExample'),
supportsTVOS: false,
},
{
key: 'DevSettings',
module: require('../examples/DevSettings/DevSettingsExample'),

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug-IntegrationTests-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOSIntegrationTests/Pods-RNTester-macOSIntegrationTests.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER = YES

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug-UnitTests-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOSUnitTests/Pods-RNTester-macOSUnitTests.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER = YES

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester/Pods-RNTester.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER[sdk=iphonesimulator*] = YES

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOS/Pods-RNTester-macOS.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER = YES

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug_IntegrationTests-iOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER[sdk=iphonesimulator*] = YES

Просмотреть файл

@ -0,0 +1,8 @@
//
// Debug_UnitTests-iOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.debug.xcconfig"
ENABLE_ADDRESS_SANITIZER[sdk=iphonesimulator*] = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug-IntegrationTests-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOSIntegrationTests/Pods-RNTester-macOSIntegrationTests.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug-UnitTests-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOSUnitTests/Pods-RNTester-macOSUnitTests.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester/Pods-RNTester.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug-macOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTester-macOS/Pods-RNTester-macOS.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE[sdk=iphonesimulator*] = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY[sdk=iphonesimulator*] = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK[sdk=iphonesimulator*] = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug_IntegrationTests-iOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES

Просмотреть файл

@ -0,0 +1,21 @@
//
// Debug_UnitTests-iOS.xcconfig
// RNTesterPods
//
#include "../../Pods/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.release.xcconfig"
ENABLE_ADDRESS_SANITIZER = NO
RUN_CLANG_STATIC_ANALYZER = YES
CLANG_STATIC_ANALYZER_MODE = deep
// Required security settings for production code (do not override at target/project level, with the possible
// exception of legacy test code)
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES