Use free memory pointer for returndatacopy (#5057)

This commit is contained in:
Francisco
2024-05-27 16:29:07 -03:00
committed by GitHub
parent faa6255b80
commit a241f09905

View File

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