| Index: base/debug/proc_maps_linux_unittest.cc | 
| diff --git a/base/debug/proc_maps_linux_unittest.cc b/base/debug/proc_maps_linux_unittest.cc | 
| index c9f2267e166e15cdcf8241cee9f8b20d51f3ca86..cbc0dd036ad015522623f5cc907854f8b016e76c 100644 | 
| --- a/base/debug/proc_maps_linux_unittest.cc | 
| +++ b/base/debug/proc_maps_linux_unittest.cc | 
| @@ -181,20 +181,19 @@ TEST(ProcMapsTest, Permissions) { | 
| } | 
| } | 
|  | 
| -TEST(ProcMapsTest, ReadProcMaps) { | 
| -  std::string proc_maps; | 
| -  ASSERT_TRUE(ReadProcMaps(&proc_maps)); | 
| - | 
| -  std::vector<MappedMemoryRegion> regions; | 
| -  ASSERT_TRUE(ParseProcMaps(proc_maps, ®ions)); | 
| -  ASSERT_FALSE(regions.empty()); | 
| - | 
| +#if defined(ADDRESS_SANITIZER) | 
| +// AddressSanitizer may move local variables to a dedicated "fake stack" which | 
| +// is outside the stack region listed in /proc/self/maps. We disable ASan | 
| +// instrumentation for this function to force the variable to be local. | 
| +__attribute__((no_sanitize_address)) | 
| +#endif | 
| +void CheckProcMapsRegions(const std::vector<MappedMemoryRegion> ®ions) { | 
| // We should be able to find both the current executable as well as the stack | 
| -  // mapped into memory. Use the address of |proc_maps| as a way of finding the | 
| +  // mapped into memory. Use the address of |exe_path| as a way of finding the | 
| // stack. | 
| FilePath exe_path; | 
| EXPECT_TRUE(PathService::Get(FILE_EXE, &exe_path)); | 
| -  uintptr_t address = reinterpret_cast<uintptr_t>(&proc_maps); | 
| +  uintptr_t address = reinterpret_cast<uintptr_t>(&exe_path); | 
| bool found_exe = false; | 
| bool found_stack = false; | 
| bool found_address = false; | 
| @@ -246,6 +245,17 @@ TEST(ProcMapsTest, ReadProcMaps) { | 
| } | 
| } | 
|  | 
| +TEST(ProcMapsTest, ReadProcMaps) { | 
| +  std::string proc_maps; | 
| +  ASSERT_TRUE(ReadProcMaps(&proc_maps)); | 
| + | 
| +  std::vector<MappedMemoryRegion> regions; | 
| +  ASSERT_TRUE(ParseProcMaps(proc_maps, ®ions)); | 
| +  ASSERT_FALSE(regions.empty()); | 
| + | 
| +  CheckProcMapsRegions(regions); | 
| +} | 
| + | 
| TEST(ProcMapsTest, ReadProcMapsNonEmptyString) { | 
| std::string old_string("I forgot to clear the string"); | 
| std::string proc_maps(old_string); | 
|  |