Category: Coding Mistakes
ConcreteMultiStrategy should inherit from ReentrancyGuardUpgradeable instead of ReentrancyGuard
Informational Impact
Informational Severity
N/A Likelihood
Description
The ConcreteMultiStrategy contract deploys via clone, and its state initializes in the initialize function. Therefore, it should inherit from ReentrancyGuardUpgradeable instead of ReentrancyGuard.
Impact
The _status storage variable in ConcreteMultiStrategy remains uninitialized during the initialize call. Although it will be correctly set to NOT_ENTERED after the first invocation of the nonReentrant modifier, it is best practice to inherit from ReentrancyGuardUpgradeable.
Recommendations
ConcreteMultiStrategy should inherit ReentrancyGuardUpgradeable instead of ReentrancyGuard and initialize the _status storage variable in the initialize function.
Remediation
This issue has been acknowledged by Blueprint Finance, and a fix was implemented in commit 0884cb28↗.