LibCrypto: Fix off-by-one error when bit count is a multiple of 256

This commit is contained in:
stelar7 2024-04-05 16:40:33 +02:00 committed by Andreas Kling
parent f9dd028119
commit b3e112fa51
Notes: sideshowbarker 2024-07-16 22:26:05 +09:00

View file

@ -5,6 +5,7 @@
*/
#include <AK/IntegralMath.h>
#include <AK/Math.h>
#include <AK/Stream.h>
#include <AK/Try.h>
#include <AK/Utf8View.h>
@ -262,7 +263,8 @@ ErrorOr<void> Encoder::write_length(size_t value)
if (value < 0x80)
return write_byte(value);
size_t size_in_bits = AK::ceil_log2(value);
double minimum_bits = AK::log2(value);
size_t size_in_bits = AK::floor(minimum_bits) + 1;
size_t size = ceil_div(size_in_bits, 8ul);
TRY(write_byte(0x80 | size));