| @@ -10,8 +10,10 @@ | ||
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * Forward calls to a provider class. |
| 13 | 13 | * |
| 14 | + * @since 4.16.7.2 Verify the resolved provider implements the Provider contract. | |
| 15 | + * | |
| 14 | 16 | * @param string $name |
| 15 | 17 | * @param array $arguments |
| 16 | 18 | * |
| 17 | 19 | * @return mixed |
| @@ -18,8 +20,12 @@ | ||
| 18 | 20 | */ |
| 19 | 21 | public function __call($name, $arguments) |
| 20 | 22 | { |
| 21 | 23 | $provider = isset($this->loadedProviders[$name]) ? $this->loadedProviders[$name] : $this->loadProvider($name); |
| 24 | + | |
| 25 | + if ( ! $provider instanceof Contract\Provider ) { | |
| 26 | + return null; | |
| 27 | + } | |
| 22 | 28 | |
| 23 | 29 | return call_user_func_array($this->loadedProviders[$name], $arguments); |
| 24 | 30 | } |
| 25 | 31 | |