aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdutils
diff options
context:
space:
mode:
authormicl2e2 <micl2e2@proton.me>2025-03-28 21:31:49 +0800
committerAliaksei Levin <22669599+levlam@users.noreply.github.com>2025-04-12 22:47:46 +0300
commita7e4cb437784fefee861501b5776688c4bba0038 (patch)
treea2c520e87afab2ebe8cb3189dac4c1a52d916992 /tdutils
parent47d3f6db77f91c844e06c49e7aeae555572d3727 (diff)
Suppress array-bounds warnings
Diffstat (limited to 'tdutils')
-rw-r--r--tdutils/td/utils/Ed25519.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/tdutils/td/utils/Ed25519.cpp b/tdutils/td/utils/Ed25519.cpp
index 7128a9cb6..21137cf3a 100644
--- a/tdutils/td/utils/Ed25519.cpp
+++ b/tdutils/td/utils/Ed25519.cpp
@@ -275,7 +275,11 @@ Result<SecureString> Ed25519::compute_shared_secret(const PublicKey &public_key,
#if OPENSSL_VERSION_NUMBER >= 0x10101000L
BigNum p = BigNum::from_hex("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed").move_as_ok();
auto public_y = public_key.as_octet_string();
- public_y.as_mutable_slice()[31] = static_cast<char>(public_y[31] & 127);
+ MutableSlice pub_slc = public_y.as_mutable_slice();
+ if (pub_slc.size() != PublicKey::LENGTH) {
+ return Status::Error("Wrong public key");
+ }
+ pub_slc[31] = static_cast<char>(public_y[31] & 127);
BigNum y = BigNum::from_le_binary(public_y);
BigNum y2 = y.clone();
y += 1;