mirror of
https://github.com/zyantific/zydis
synced 2026-06-08 18:41:39 +00:00
fix dropped leading zero in hex append at padding boundary
This commit is contained in:
+10
-10
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user