postfix: Decrement blr length after reading value from blr in parse_format for blr_int128 - #9124
Conversation
…format` for `blr_int128`
parse_format for blr_int128parse_format for blr_int128
|
Perhaps, there is also a problem in |
As I can see, if (blr_length-- == 0) // <-- here
{
error = true;
break;
}
const USHORT msg_number = *blr++;Or were you referring to some other place? |
|
This decrement is paired with consumption of Then |
Hm, I though it is paired differently: if (blr_length < 3)
return NULL;
blr_length -= 3; // <--- We need to read 3 u8 values from blr --->
const SSHORT version = *blr++; // <--- 1 --->
if (version != blr_version4 && version != blr_version5)
return NULL;
if (*blr++ != blr_begin) // <--- 2 --->
return NULL;
RMessage* message = NULL;
bool error = false;
while (*blr++ == blr_message) // <--- 3 --->
{
if (blr_length-- == 0) // <--- We need to read 1 u8 values from blr --->
{
error = true;
break;
}
const USHORT msg_number = *blr++; // <--- 1 --->
rem_fmt* const format = parse_format(blr, blr_length);
if (!format)
{
error = true;
break;
}
RMessage* next = FB_NEW RMessage(format->fmt_length);
next->msg_next = message;
message = next;
message->msg_address = reinterpret_cast<UCHAR*>(format);
message->msg_number = msg_number;
if (blr_length-- == 0) // <--- It checks the next `while (*blr++ == blr_message)` iteration --->
{
error = true;
break;
}
} |
|
Ah, you are right, I'm sorry. |
No description provided.