[PATCH] D117189: [AMDGPU] Fix error handling in asm constraint syntax

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 12 23:52:00 PST 2022


rampitec created this revision.
rampitec added a reviewer: arsenm.
Herald added subscribers: foad, kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl.
rampitec requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.

I believe this is unexploitable because in either case the result
will be 'couldn't allocate register for constraint' error message,
but error code checking is clearly wrong.


https://reviews.llvm.org/D117189

Files:
  llvm/lib/Target/AMDGPU/SIISelLowering.cpp


Index: llvm/lib/Target/AMDGPU/SIISelLowering.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -11745,9 +11745,9 @@
       if (RegName.consume_front("[")) {
         uint32_t End;
         bool Failed = RegName.consumeInteger(10, Idx);
-        Failed &= !RegName.consume_front(":");
-        Failed &= RegName.consumeInteger(10, End);
-        Failed &= !RegName.consume_back("]");
+        Failed |= !RegName.consume_front(":");
+        Failed |= RegName.consumeInteger(10, End);
+        Failed |= !RegName.consume_back("]");
         if (!Failed) {
           uint32_t Width = (End - Idx + 1) * 32;
           MCRegister Reg = RC->getRegister(Idx);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D117189.399560.patch
Type: text/x-patch
Size: 771 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220113/480901a2/attachment.bin>


More information about the llvm-commits mailing list