From 034b789f1c32970966c3c87d95b3363bb71a3da5 Mon Sep 17 00:00:00 2001 From: "jabber.developer2" Date: Tue, 31 Mar 2026 19:51:20 +0300 Subject: [PATCH] upstream: fix: Fix Floating Point Exception in OMEMO session building (bc13a726b) --- src/omemo/omemo.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c index 07e847a8..d66b41c1 100644 --- a/src/omemo/omemo.c +++ b/src/omemo/omemo.c @@ -669,8 +669,13 @@ omemo_start_device_session(const char* const jid, uint32_t device_id, } int prekey_index; + size_t prekeys_len = g_list_length(prekeys); + if (prekeys_len == 0) { + log_error("[OMEMO] No prekeys found for %s device %d", jid, device_id); + goto out; + } gcry_randomize(&prekey_index, sizeof(int), GCRY_STRONG_RANDOM); - prekey_index %= g_list_length(prekeys); + prekey_index %= prekeys_len; omemo_key_t* prekey = g_list_nth_data(prekeys, prekey_index); curve_decode_point(&prekey_public, prekey->data, prekey->length, omemo_ctx.signal);