From d0f138ae5aaeb6291f12c49a13e3bb2e2237c792 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 1 Mar 2018 09:33:54 +0100 Subject: Filtering for empty id's does not work, so detect and guard against it. --- common/synchronizer.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'common/synchronizer.cpp') diff --git a/common/synchronizer.cpp b/common/synchronizer.cpp index b8de1ed..48e71ff 100644 --- a/common/synchronizer.cpp +++ b/common/synchronizer.cpp @@ -244,13 +244,18 @@ QByteArrayList Synchronizer::resolveFilter(const QueryBase::Comparator &filter) { QByteArrayList result; if (filter.value.canConvert()) { - result << filter.value.value(); + const auto value = filter.value.value(); + if (value.isEmpty()) { + SinkErrorCtx(mLogCtx) << "Tried to filter for an empty value: " << filter; + } else { + result << filter.value.value(); + } } else if (filter.value.canConvert()) { auto query = filter.value.value(); Storage::EntityStore store{mResourceContext, mLogCtx}; DataStoreQuery dataStoreQuery{query, query.type(), store}; auto resultSet = dataStoreQuery.execute(); - resultSet.replaySet(0, 0, [this, &result](const ResultSet::Result &r) { + resultSet.replaySet(0, 0, [&result](const ResultSet::Result &r) { result << r.entity.identifier(); }); } else { -- cgit v1.2.3