aboutsummaryrefslogtreecommitdiffhomepage
path: root/tddb/td/db/binlog/Binlog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tddb/td/db/binlog/Binlog.cpp')
-rw-r--r--tddb/td/db/binlog/Binlog.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/tddb/td/db/binlog/Binlog.cpp b/tddb/td/db/binlog/Binlog.cpp
index 43c0e6e39..989ea8256 100644
--- a/tddb/td/db/binlog/Binlog.cpp
+++ b/tddb/td/db/binlog/Binlog.cpp
@@ -81,8 +81,9 @@ struct AesCtrEncryptionEvent {
store(iv_, storer);
store(key_hash_, storer);
}
+
template <class ParserT>
- void parse(ParserT &&parser) {
+ void parse(ParserT &parser) {
using td::parse;
BEGIN_PARSE_FLAGS();
END_PARSE_FLAGS();
@@ -340,7 +341,10 @@ void Binlog::do_event(BinlogEvent &&event) {
if (event.type_ < 0) {
if (event.type_ == BinlogEvent::ServiceTypes::AesCtrEncryption) {
detail::AesCtrEncryptionEvent encryption_event;
- encryption_event.parse(TlParser(event.get_data()));
+ TlParser event_parser(event.get_data());
+ encryption_event.parse(event_parser);
+ event_parser.fetch_end();
+ LOG_CHECK(event_parser.get_error() == nullptr) << event_parser.get_status();
string key;
if (aes_ctr_key_salt_ == encryption_event.key_salt_) {