From 602550473438520800f7eb2445cecb8f1a51f28a Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 17 May 2019 01:36:38 -0700 Subject: [PATCH] ircd::m::dbs: Fix partial event_horizon key creation. ircd::m::dbs: Assert event_idx non-zero for event_horizon_resolve. --- ircd/m_dbs.cc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ircd/m_dbs.cc b/ircd/m_dbs.cc index fc954dcac..2a28b6c5c 100644 --- a/ircd/m_dbs.cc +++ b/ircd/m_dbs.cc @@ -929,6 +929,7 @@ ircd::m::dbs::_index_event_horizon_resolve(db::txn &txn, std::get<0>(parts) }; + assert(event_idx != 0); assert(event_idx != opts.event_idx); const event::fetch _event { @@ -1899,12 +1900,7 @@ ircd::string_view ircd::m::dbs::event_horizon_key(const mutable_buffer &out, const event::id &event_id) { - mutable_buffer buf(out); - consume(buf, copy(buf, event_id)); - return - { - data(out), data(buf) - }; + return event_horizon_key(out, event_id, 0UL); } ircd::string_view @@ -1914,8 +1910,13 @@ ircd::m::dbs::event_horizon_key(const mutable_buffer &out, { mutable_buffer buf(out); consume(buf, copy(buf, event_id)); - consume(buf, copy(buf, "\0"_sv)); - consume(buf, copy(buf, byte_view(event_idx))); + + if(event_idx) + { + consume(buf, copy(buf, "\0"_sv)); + consume(buf, copy(buf, byte_view(event_idx))); + } + return { data(out), data(buf)