Index: lib/asan/asan_descriptions.cc =================================================================== --- lib/asan/asan_descriptions.cc +++ lib/asan/asan_descriptions.cc @@ -452,7 +452,7 @@ return; } data.kind = kAddressKindWild; - addr = 0; + data.addr = 0; } void PrintAddressDescription(uptr addr, uptr access_size, Index: lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc =================================================================== --- lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc +++ lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc @@ -324,7 +324,7 @@ void ParseSymbolizeDataOutput(const char *str, DataInfo *info) { str = ExtractToken(str, "\n", &info->name); str = ExtractUptr(str, " ", &info->start); - str = ExtractUptr(str, "\n", &info->size); + ExtractUptr(str, "\n", &info->size); } bool LLVMSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) { Index: lib/sanitizer_common/sanitizer_symbolizer_mac.cc =================================================================== --- lib/sanitizer_common/sanitizer_symbolizer_mac.cc +++ lib/sanitizer_common/sanitizer_symbolizer_mac.cc @@ -111,12 +111,13 @@ InternalFree(symbol_name); rest = ExtractTokenUpToDelimiter(rest, ") ", out_module); + if (line) *line = 0; if (rest[0] == '(') { if (out_file) { rest++; rest = ExtractTokenUpToDelimiter(rest, ":", out_file); char *extracted_line_number; - rest = ExtractTokenUpToDelimiter(rest, ")", &extracted_line_number); + ExtractTokenUpToDelimiter(rest, ")", &extracted_line_number); if (line) *line = (uptr)internal_atoll(extracted_line_number); InternalFree(extracted_line_number); } Index: lib/tsan/rtl/tsan_stack_trace.cc =================================================================== --- lib/tsan/rtl/tsan_stack_trace.cc +++ lib/tsan/rtl/tsan_stack_trace.cc @@ -37,7 +37,9 @@ } void VarSizeStackTrace::Init(const uptr *pcs, uptr cnt, uptr extra_top_pc) { - ResizeBuffer(cnt + !!extra_top_pc); + uptr new_size = cnt + !!extra_top_pc; + CHECK(new_size); + ResizeBuffer(new_size); internal_memcpy(trace_buffer, pcs, cnt * sizeof(trace_buffer[0])); if (extra_top_pc) trace_buffer[cnt] = extra_top_pc; Index: lib/tsan/rtl/tsan_sync.cc =================================================================== --- lib/tsan/rtl/tsan_sync.cc +++ lib/tsan/rtl/tsan_sync.cc @@ -79,6 +79,7 @@ } bool MetaMap::FreeRange(Processor *proc, uptr p, uptr sz) { + CHECK(proc); bool has_something = false; u32 *meta = MemToMeta(p); u32 *end = MemToMeta(p + sz);