[PATCH] D95112: X86: Fix use-after-realloc in X86AsmParser::ParseIntelExpression

Duncan P. N. Exon Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 20 19:15:47 PST 2021


dexonsmith updated this revision to Diff 318091.
dexonsmith added a comment.

Remove an unrelated whitespace change.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95112/new/

https://reviews.llvm.org/D95112

Files:
  llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp


Index: llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
===================================================================
--- llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1842,12 +1842,15 @@
 
 bool X86AsmParser::ParseIntelExpression(IntelExprStateMachine &SM, SMLoc &End) {
   MCAsmParser &Parser = getParser();
-  const AsmToken &Tok = Parser.getTok();
   StringRef ErrMsg;
 
   AsmToken::TokenKind PrevTK = AsmToken::Error;
   bool Done = false;
   while (!Done) {
+    // Get a fresh reference on each loop iteration in case the previous
+    // iteration moved the token storage during UnLex().
+    const AsmToken &Tok = Parser.getTok();
+
     bool UpdateLocLex = true;
     AsmToken::TokenKind TK = getLexer().getKind();
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95112.318091.patch
Type: text/x-patch
Size: 788 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210121/03bf06fa/attachment.bin>


More information about the llvm-commits mailing list