createGauge4Pool() lacks proper checks and/or access control
The function createGauge4Pool() can be called by anybody at any time and is used to create a Gauge for a special pool, the 4pool. It takes 5 parameters as inputs:\\n```\\n    function createGauge4pool(\\n       address _4pool,\\n          address _dai,\\n            address _usdc,\\n               address _usdt,\\n             address _cash\\n       ) external returns (address) {\\n```\\n\\nNone of the parameters are properly sanitized, meaning _dai, _usdc, _usdt, _cash could be any whitelisted token and not necessarily DAI, USDC, USDT, and cash while _4pool could be any custom contract, including a malicious one. The function also sets the variable FOUR_POOL_GAUGE_ADDRESS to the newly created gauge, overwriting the previous value.
Make the function only callable by an admin, and if it can be called multiple times, turn the variable FOUR_POOL_GAUGE_ADDRESS to a mapping from address to boolean to support multiple 4 pools.
```\\n    function createGauge4pool(\\n       address _4pool,\\n          address _dai,\\n            address _usdc,\\n               address _usdt,\\n             address _cash\\n       ) external returns (address) {\\n```\\n