From c792fd28b14ee2bcb1a0a15a8186388b0fae1486 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sat, 21 May 2022 15:21:14 +0200 Subject: [PATCH] Fix unsigned wraparound when creating one time keys --- src/ChatPage.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index cd7f3779..d4fbb801 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -1025,7 +1025,8 @@ ChatPage::ensureOneTimeKeyCount(const std::map &counts, replace_fallback_key); if (count->second < MAX_ONETIME_KEYS || replace_fallback_key) { - const size_t nkeys = MAX_ONETIME_KEYS - count->second; + const size_t nkeys = + count->second < MAX_ONETIME_KEYS ? (MAX_ONETIME_KEYS - count->second) : 0; nhlog::crypto()->info("uploading {} {} keys", nkeys, mtx::crypto::SIGNED_CURVE25519); olm::client()->generate_one_time_keys(nkeys, replace_fallback_key);