gentoo/dev-cpp/scitokens-cpp/files/scitokens-cpp-1.1.0-invalid-vector-access.patch
Oliver Freyermuth 6402e21221
dev-cpp/scitokens-cpp: backport fix for invalid vector access
Fixes tests on hardened systems and potential runtime errors.

Closes: https://bugs.gentoo.org/922679
Closes: https://github.com/gentoo/gentoo/pull/34980
Signed-off-by: Oliver Freyermuth <o.freyermuth@googlemail.com>
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
2024-01-30 09:23:58 +01:00

25 lines
904 B
Diff

Fix invalid std::vector access (visible with tests on hardened systems)
From: Mattias Ellert <mattias.ellert@physics.uu.se>
Bug: https://github.com/scitokens/scitokens-cpp/pull/126
Bug: https://bugs.gentoo.org/922679
---
src/scitokens_internal.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/src/scitokens_internal.cpp
+++ b/src/scitokens_internal.cpp
@@ -978,9 +978,9 @@ bool scitokens::Validator::store_public_ec_key(const std::string &issuer,
auto x_num = BN_num_bytes(x_bignum.get());
auto y_num = BN_num_bytes(y_bignum.get());
std::vector<unsigned char> x_bin;
- x_bin.reserve(x_num);
+ x_bin.resize(x_num);
std::vector<unsigned char> y_bin;
- y_bin.reserve(y_num);
+ y_bin.resize(y_num);
BN_bn2bin(x_bignum.get(), &x_bin[0]);
BN_bn2bin(y_bignum.get(), &y_bin[0]);
std::string x_str(reinterpret_cast<char *>(&x_bin[0]), x_num);