From d8a4ede4b5599f2b14810eea29b7f00d2943fa05 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 6 Jun 2018 13:28:43 +0300 Subject: [PATCH] Fix incoming calls. Regression was introduced in 1392e05ab1. Fixes #4804. --- Telegram/SourceFiles/calls/calls_call.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp index 90a6263d0..bf79686aa 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp @@ -37,6 +37,7 @@ namespace { constexpr auto kMinLayer = 65; constexpr auto kMaxLayer = 75; constexpr auto kHangupTimeoutMs = 5000; +constexpr auto kSha256Size = 32; using tgvoip::Endpoint; @@ -180,6 +181,7 @@ void Call::start(bytes::const_span random) { void Call::startOutgoing() { Expects(_type == Type::Outgoing); Expects(_state == State::Requesting); + Expects(_gaHash.size() == kSha256Size); request(MTPphone_RequestCall( _user->inputUser, @@ -366,12 +368,12 @@ bool Call::handleUpdate(const MTPPhoneCall &call) { _id = data.vid.v; _accessHash = data.vaccess_hash.v; auto gaHashBytes = bytes::make_span(data.vg_a_hash.v); - if (gaHashBytes.size() != _gaHash.size()) { - LOG(("Call Error: Wrong g_a_hash size %1, expected %2.").arg(gaHashBytes.size()).arg(_gaHash.size())); + if (gaHashBytes.size() != kSha256Size) { + LOG(("Call Error: Wrong g_a_hash size %1, expected %2.").arg(gaHashBytes.size()).arg(kSha256Size)); finish(FinishType::Failed); return true; } - bytes::copy(_gaHash, gaHashBytes); + _gaHash = bytes::make_vector(gaHashBytes); } return true; case mtpc_phoneCallEmpty: {