From 6bf47fd221110fc10231310806878146e2aaf5fd Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 24 Jun 2014 12:51:56 +0200 Subject: [PATCH] Fix Livestatus queries where the second operand is omitted fixes #6494 --- components/livestatus/livestatusquery.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/components/livestatus/livestatusquery.cpp b/components/livestatus/livestatusquery.cpp index 698163a25..9bb4e5982 100644 --- a/components/livestatus/livestatusquery.cpp +++ b/components/livestatus/livestatusquery.cpp @@ -293,9 +293,14 @@ Filter::Ptr LivestatusQuery::ParseFilter(const String& params, unsigned long& fr for (int i = 0; i < 2; i++) { sp_index = temp_buffer.FindFirstOf(" "); - /* 'attr op' or 'attr op val' is valid */ - if (i < 1 && sp_index == String::NPos) - BOOST_THROW_EXCEPTION(std::runtime_error("Livestatus filter '" + params + "' does not contain all required fields.")); + /* check if this is the last argument */ + if (sp_index == String::NPos) { + /* 'attr op' or 'attr op val' is valid */ + if (i < 1) + BOOST_THROW_EXCEPTION(std::runtime_error("Livestatus filter '" + params + "' does not contain all required fields.")); + + break; + } tokens.push_back(temp_buffer.SubStr(0, sp_index)); temp_buffer = temp_buffer.SubStr(sp_index + 1); -- 2.40.0