fix dropped leading zero in hex append at padding boundary

This commit is contained in:
dxbjavid
2026-05-29 15:09:21 +05:30
committed by mappzor
parent 2d9e9b3867
commit 17bc6fb158
+10 -10
View File
@@ -199,21 +199,21 @@ static ZyanStatus ZydisStringAppendHexU32(ZyanString* string, ZyanU32 value, Zya
{
continue;
}
const ZyanU8 zero = force_leading_number && (v > 9) && (padding_length <= i) ? 1 : 0;
const ZyanU8 zero = force_leading_number && (v > 9) && (padding_length <= i + 1) ? 1 : 0;
if (remaining <= (ZyanUSize)i + zero)
{
return ZYAN_STATUS_INSUFFICIENT_BUFFER_SIZE;
}
buffer = (char*)string->vector.data + len - 1;
if (zero)
{
buffer[n++] = '0';
}
if (padding_length > i)
{
n = padding_length - i - 1;
ZYAN_MEMSET(buffer, '0', n);
}
if (zero)
{
buffer[n++] = '0';
}
}
ZYAN_ASSERT(buffer);
if (uppercase)
@@ -273,21 +273,21 @@ static ZyanStatus ZydisStringAppendHexU64(ZyanString* string, ZyanU64 value, Zya
{
continue;
}
const ZyanU8 zero = force_leading_number && (v > 9) && (padding_length <= i) ? 1 : 0;
const ZyanU8 zero = force_leading_number && (v > 9) && (padding_length <= i + 1) ? 1 : 0;
if (remaining <= (ZyanUSize)i + zero)
{
return ZYAN_STATUS_INSUFFICIENT_BUFFER_SIZE;
}
buffer = (char*)string->vector.data + len - 1;
if (zero)
{
buffer[n++] = '0';
}
if (padding_length > i)
{
n = padding_length - i - 1;
ZYAN_MEMSET(buffer, '0', n);
}
if (zero)
{
buffer[n++] = '0';
}
}
ZYAN_ASSERT(buffer);
if (uppercase)