From 72ac6667cebd1547277f68f146f38dbb10fbd29e Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 4 Feb 2019 19:39:09 +0300 Subject: [PATCH] Never set 0 session_id. GitOrigin-RevId: 58a7074812fa330930b033d2ffcfcc1ae0e803ec --- td/telegram/net/Session.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/td/telegram/net/Session.cpp b/td/telegram/net/Session.cpp index 14c33dc4..a20c3c11 100644 --- a/td/telegram/net/Session.cpp +++ b/td/telegram/net/Session.cpp @@ -132,7 +132,9 @@ Session::Session(unique_ptr callback, std::shared_ptr auth_data_.set_future_salts(std::move(server_salts), Time::now()); } uint64 session_id = 0; - Random::secure_bytes(reinterpret_cast(&session_id), sizeof(session_id)); + do { + Random::secure_bytes(reinterpret_cast(&session_id), sizeof(session_id)); + } while (session_id == 0); auth_data_.set_session_id(session_id); LOG(WARNING) << "Generate new session_id " << session_id << " for " << (use_pfs ? "temp " : "") << (is_cdn ? "CDN " : "") << "auth key " << auth_data_.get_auth_key().id() << " for DC" << dc_id;