mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-27 07:44:04 +02:00
FilterQueryString: fix parsing expression lists
The parser sometimes failed when reaching a=b&b=(c|d|e) - fixed.
This commit is contained in:
parent
1ea15e1f66
commit
f2605b89ff
@ -32,13 +32,14 @@ class FilterQueryString
|
|||||||
|
|
||||||
protected function readNextValue()
|
protected function readNextValue()
|
||||||
{
|
{
|
||||||
$var = rawurldecode($this->readUnlessSpecialChar());
|
if ($this->nextChar() === '(') {
|
||||||
if ($var === '' && $this->nextChar() === '(') {
|
|
||||||
$this->readChar();
|
$this->readChar();
|
||||||
$var = preg_split('~\|~', $this->readUnless(')'));
|
$var = preg_split('~\|~', $this->readUnless(')'));
|
||||||
if ($this->readChar() !== ')') {
|
if ($this->readChar() !== ')') {
|
||||||
$this->parseError(null, 'Expected ")"');
|
$this->parseError(null, 'Expected ")"');
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$var = rawurldecode($this->readUnless(array(')', '&', '|', '>', '<')));
|
||||||
}
|
}
|
||||||
return $var;
|
return $var;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user