tsan: Go language support


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@159754 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
index be2f94c..816fddf 100644
--- a/lib/sanitizer_common/sanitizer_allocator.cc
+++ b/lib/sanitizer_common/sanitizer_allocator.cc
@@ -31,13 +31,18 @@
 const u64 kBlockMagic = 0x6A6CB03ABCEBC041ull;
 
 void *InternalAlloc(uptr size) {
+  if (size + sizeof(u64) < size)
+    return 0;
   void *p = LIBC_MALLOC(size + sizeof(u64));
+  if (p == 0)
+    return 0;
   ((u64*)p)[0] = kBlockMagic;
   return (char*)p + sizeof(u64);
 }
 
 void InternalFree(void *addr) {
-  if (!addr) return;
+  if (addr == 0)
+    return;
   addr = (char*)addr - sizeof(u64);
   CHECK_EQ(((u64*)addr)[0], kBlockMagic);
   ((u64*)addr)[0] = 0;