<div dir="ltr">Is this still necessary after r362062?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 30, 2019 at 10:00 AM Fangrui Song via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: maskray<br>
Date: Thu May 30 01:03:02 2019<br>
New Revision: 362067<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=362067&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=362067&view=rev</a><br>
Log:<br>
asm goto: fix out-of-bounds read of Constraints after rC362045<br>
<br>
When parsing goto labels, Names and Exprs are expanded but Constraints<br>
is not, this may cause a out-of-bounds read later in:<br>
<br>
// GCCAsmStmt::GCCAsmStmt<br>
// `constraints` has only `NumExprs - NumLabels` elements<br>
  Constraints = new (C) StringLiteral*[NumExprs];<br>
  std::copy(constraints, constraints + NumExprs, Constraints);<br>
<br>
Modified:<br>
    cfe/trunk/lib/Parse/ParseStmtAsm.cpp<br>
<br>
Modified: cfe/trunk/lib/Parse/ParseStmtAsm.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseStmtAsm.cpp?rev=362067&r1=362066&r2=362067&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseStmtAsm.cpp?rev=362067&r1=362066&r2=362067&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Parse/ParseStmtAsm.cpp (original)<br>
+++ cfe/trunk/lib/Parse/ParseStmtAsm.cpp Thu May 30 01:03:02 2019<br>
@@ -846,6 +846,7 @@ StmtResult Parser::ParseAsmStatement(boo<br>
       ExprResult Res =<br>
           Actions.ActOnAddrLabel(Tok.getLocation(), Tok.getLocation(), LD);<br>
       Exprs.push_back(Res.get());<br>
+      Constraints.emplace_back();<br>
       NumLabels++;<br>
       ConsumeToken();<br>
       if (!TryConsumeToken(tok::comma))<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>