From 0505181006f1088b2cb28a7240d5f27613783307 Mon Sep 17 00:00:00 2001 From: Scott Constable Date: Fri, 10 Apr 2020 17:32:39 -0700 Subject: [PATCH] [X86] Fix to X86LoadValueInjectionRetHardeningPass for possible segfault `MBB.back()` could segfault if `MBB.empty()`. Fixed by checking for `MBB.empty()` in the loop. Differential Revision: https://reviews.llvm.org/D77584 --- llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp b/llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp index 9c36e86099f999..6e1134a259501a 100644 --- a/llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp +++ b/llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp @@ -99,6 +99,9 @@ bool X86LoadValueInjectionRetHardeningPass::runOnMachineFunction( bool Modified = false; for (auto &MBB : MF) { + if (MBB.empty()) + continue; + MachineInstr &MI = MBB.back(); if (MI.getOpcode() != X86::RETQ) continue;