Pārlūkot izejas kodu

Use free memory pointer for returndatacopy (#5057)

Francisco 1 gadu atpakaļ
vecāks
revīzija
a241f09905
1 mainītis faili ar 3 papildinājumiem un 2 dzēšanām
  1. 3 2
      contracts/utils/Create2.sol

+ 3 - 2
contracts/utils/Create2.sol

@@ -46,8 +46,9 @@ library Create2 {
             addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)
             // if no address was created, and returndata is not empty, bubble revert
             if and(iszero(addr), not(iszero(returndatasize()))) {
-                returndatacopy(0, 0, returndatasize())
-                revert(0, returndatasize())
+                let p := mload(0x40)
+                returndatacopy(p, 0, returndatasize())
+                revert(p, returndatasize())
             }
         }
         if (addr == address(0)) {