[llvm] r369815 - hwasan: Fix use of uninitialized memory.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 23 14:37:21 PDT 2019


Author: pcc
Date: Fri Aug 23 14:37:20 2019
New Revision: 369815

URL: http://llvm.org/viewvc/llvm-project?rev=369815&view=rev
Log:
hwasan: Fix use of uninitialized memory.

Reported by e.g.
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/23071/steps/build%20with%20ninja/logs/stdio

Modified:
    llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp

Modified: llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp?rev=369815&r1=369814&r2=369815&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp Fri Aug 23 14:37:20 2019
@@ -369,6 +369,18 @@ void HWAddressSanitizer::initializeModul
   Int32Ty = IRB.getInt32Ty();
 
   HwasanCtorFunction = nullptr;
+
+  // Older versions of Android do not have the required runtime support for
+  // global or personality function instrumentation. On other platforms we
+  // currently require using the latest version of the runtime.
+  bool NewRuntime =
+      !TargetTriple.isAndroid() || !TargetTriple.isAndroidVersionLT(30);
+
+  // If we don't have personality function support, fall back to landing pads.
+  InstrumentLandingPads = ClInstrumentLandingPads.getNumOccurrences()
+                              ? ClInstrumentLandingPads
+                              : !NewRuntime;
+
   if (!CompileKernel) {
     std::tie(HwasanCtorFunction, std::ignore) =
         getOrCreateSanitizerCtorAndInitFunctions(
@@ -383,22 +395,11 @@ void HWAddressSanitizer::initializeModul
               appendToGlobalCtors(M, Ctor, 0, Ctor);
             });
 
-    // Older versions of Android do not have the required runtime support for
-    // global or personality function instrumentation. On other platforms we
-    // currently require using the latest version of the runtime.
-    bool NewRuntime =
-        !TargetTriple.isAndroid() || !TargetTriple.isAndroidVersionLT(30);
-
     bool InstrumentGlobals =
         ClGlobals.getNumOccurrences() ? ClGlobals : NewRuntime;
     if (InstrumentGlobals)
       instrumentGlobals();
 
-    // If we don't have personality function support, fall back to landing pads.
-    InstrumentLandingPads = ClInstrumentLandingPads.getNumOccurrences()
-                                ? ClInstrumentLandingPads
-                                : !NewRuntime;
-
     bool InstrumentPersonalityFunctions =
         ClInstrumentPersonalityFunctions.getNumOccurrences()
             ? ClInstrumentPersonalityFunctions




More information about the llvm-commits mailing list