From bf2692b7cbc45f56e96b3bd1ffa1233bca28be5d Mon Sep 17 00:00:00 2001 From: Luke Ma Date: Mon, 11 Dec 2023 16:49:29 +0800 Subject: [PATCH] refactor: add address(0) check for constructors. (#1010) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Péter Garamvölgyi Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> --- contracts/src/L1/L1ScrollMessenger.sol | 3 +++ contracts/src/L2/L2ScrollMessenger.sol | 3 +++ contracts/src/libraries/IScrollMessenger.sol | 5 +++++ contracts/src/test/L1GatewayTestBase.t.sol | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/contracts/src/L1/L1ScrollMessenger.sol b/contracts/src/L1/L1ScrollMessenger.sol index 3f3907c17d..4941697519 100644 --- a/contracts/src/L1/L1ScrollMessenger.sol +++ b/contracts/src/L1/L1ScrollMessenger.sol @@ -95,6 +95,9 @@ contract L1ScrollMessenger is ScrollMessengerBase, IL1ScrollMessenger { address _rollup, address _messageQueue ) public initializer { + if (_counterpart == address(0) || _rollup == address(0) || _messageQueue == address(0)) { + revert ErrZeroAddress(); + } ScrollMessengerBase.__ScrollMessengerBase_init(_counterpart, _feeVault); rollup = _rollup; diff --git a/contracts/src/L2/L2ScrollMessenger.sol b/contracts/src/L2/L2ScrollMessenger.sol index fbf2788b68..76440e13d4 100644 --- a/contracts/src/L2/L2ScrollMessenger.sol +++ b/contracts/src/L2/L2ScrollMessenger.sol @@ -49,12 +49,15 @@ contract L2ScrollMessenger is ScrollMessengerBase, IL2ScrollMessenger { ***************/ constructor(address _messageQueue) { + if (_messageQueue == address(0)) revert ErrZeroAddress(); + _disableInitializers(); messageQueue = _messageQueue; } function initialize(address _counterpart) external initializer { + if (_counterpart == address(0)) revert ErrZeroAddress(); ScrollMessengerBase.__ScrollMessengerBase_init(_counterpart, address(0)); } diff --git a/contracts/src/libraries/IScrollMessenger.sol b/contracts/src/libraries/IScrollMessenger.sol index a2b149c946..353ffc7756 100644 --- a/contracts/src/libraries/IScrollMessenger.sol +++ b/contracts/src/libraries/IScrollMessenger.sol @@ -3,6 +3,11 @@ pragma solidity ^0.8.16; interface IScrollMessenger { + /*********** + * Errors * + ***********/ + error ErrZeroAddress(); + /********** * Events * **********/ diff --git a/contracts/src/test/L1GatewayTestBase.t.sol b/contracts/src/test/L1GatewayTestBase.t.sol index 2d7f2c8adc..19989560e1 100644 --- a/contracts/src/test/L1GatewayTestBase.t.sol +++ b/contracts/src/test/L1GatewayTestBase.t.sol @@ -82,7 +82,7 @@ abstract contract L1GatewayTestBase is DSTestPlus { verifier = new MockRollupVerifier(); // Deploy L2 contracts - l2Messenger = new L2ScrollMessenger(address(0)); + l2Messenger = new L2ScrollMessenger(address(1)); // Initialize L1 contracts l1Messenger.initialize(address(l2Messenger), feeVault, address(rollup), address(messageQueue));