LibCrypto: Protect the SignedBigInteger ctor against integer overflow

In particular, if given a value of -2147483648, we would invoke signed
integer overflow (which is UB).
This commit is contained in:
Timothy Flynn 2024-12-19 16:29:40 -05:00 committed by Jelle Raaijmakers
commit edd3b14ddf
Notes: github-actions[bot] 2024-12-19 22:38:27 +00:00
2 changed files with 12 additions and 1 deletions

View file

@ -21,7 +21,7 @@ public:
requires(sizeof(T) <= sizeof(i32))
SignedBigInteger(T value)
: m_sign(value < 0)
, m_unsigned_data(abs(static_cast<i32>(value)))
, m_unsigned_data(static_cast<u32>(abs(static_cast<i64>(value))))
{
}