Ver código fonte

Use free memory pointer for returndatacopy (#5057)

Francisco 1 ano atrás
pai
commit
a241f09905
1 arquivos alterados com 3 adições e 2 exclusões
  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)) {