diff --git a/extension/Classes/Core/Store/Sip.php b/extension/Classes/Core/Store/Sip.php index 8620857b942e05a20e75600e761a84a98eac4335..6f745086a1d0787032cfcd18b6b4a1d0bd284fc4 100644 --- a/extension/Classes/Core/Store/Sip.php +++ b/extension/Classes/Core/Store/Sip.php @@ -335,6 +335,8 @@ class Sip { */ public function getVarsFromSip($s) { + static $exceptionAlreadyThrown = false; + # Check if parameter is manipulated if (strlen($s) != SIP_TOKEN_LENGTH) { Config::attackDetectedExitNow(array(), 'Invalid SIP token length: ' . strlen($s) . " _GET['s']=" . htmlentities($s)); @@ -347,6 +349,12 @@ class Sip { $sessionVar = Session::get($s); if ($sessionVar === false) { + + if ($exceptionAlreadyThrown) { + // There is already an exception throw for Store SIP: just return an empty array and do not throw a new exception. + return array(); + } + $exceptionAlreadyThrown = true; throw new \UserFormException("SIP '$s' not registered - please reload the previous site and try again.", ERROR_SIP_NOT_FOUND); }