Fix segmentation fault
- check if L Field is at least 3 to avoid crash (MBDOC48.PDF, page 23)
This commit is contained in:
parent
1080031879
commit
2335deb742
@ -2554,6 +2554,14 @@ mbus_parse(mbus_frame *frame, u_char *data, size_t data_size)
|
|||||||
frame->length1 = data[1];
|
frame->length1 = data[1];
|
||||||
frame->length2 = data[2];
|
frame->length2 = data[2];
|
||||||
|
|
||||||
|
if (frame->length1 < 3)
|
||||||
|
{
|
||||||
|
snprintf(error_str, sizeof(error_str), "Invalid M-Bus frame length.");
|
||||||
|
|
||||||
|
// not a valid M-bus frame
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
if (frame->length1 != frame->length2)
|
if (frame->length1 != frame->length2)
|
||||||
{
|
{
|
||||||
snprintf(error_str, sizeof(error_str), "Invalid M-Bus frame length.");
|
snprintf(error_str, sizeof(error_str), "Invalid M-Bus frame length.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user