瀏覽代碼

Use free memory pointer for returndatacopy (#5057)

Francisco 1 年之前
父節點
當前提交
a241f09905
共有 1 個文件被更改,包括 3 次插入2 次删除
  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)) {