Fix length tracking for parsing.
This commit is contained in:
@@ -21,8 +21,8 @@ static bool raw_parse_packet(struct buf *buf, struct packet *packet, enum packet
|
|||||||
struct raw_overlay *overlay = (struct raw_overlay *) buf_at(buf, overlay_start);
|
struct raw_overlay *overlay = (struct raw_overlay *) buf_at(buf, overlay_start);
|
||||||
size_t total_len = overlay_start + sizeof(*overlay);
|
size_t total_len = overlay_start + sizeof(*overlay);
|
||||||
|
|
||||||
if (((buf->length < sizeof(*overlay) - 1 || overlay->cr_lf != '\n') &&
|
if (((buf->length < total_len - 1 || overlay->cr_lf != '\n') &&
|
||||||
(buf->length < sizeof(*overlay) || overlay->cr_lf != '\r' || overlay->lf != '\n')) ||
|
(buf->length < total_len || overlay->cr_lf != '\r' || overlay->lf != '\n')) ||
|
||||||
buf_chr(buf, 0) != '*' ||
|
buf_chr(buf, 0) != '*' ||
|
||||||
overlay->semicolon != ';') {
|
overlay->semicolon != ';') {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user