Message validation error breaks fragmented received messages
This issue blocks the 1.28.0 release, 1.28-rc1 is affected.
[04 oct 2022, 13:37:39] [Debug] [client 4] connection to MBIM device '/dev/cdc-wdm0' established
[04 oct 2022, 13:37:39] [Debug] [client 4,0x00000003] forwarding request to device: basic-connect, query, device-services
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<< length = 48
<<<<<< data = 03:00:00:00:30:00:00:00:02:00:00:00...
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] sent message (translated)...
<<<<<< Header:
<<<<<< length = 48
<<<<<< type = command (0x00000003)
<<<<<< transaction = 2
<<<<<< Fragment header:
<<<<<< total = 1
<<<<<< current = 0
<<<<<< Contents:
<<<<<< service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
<<<<<< cid = 'device-services' (0x00000010)
<<<<<< type = 'query' (0x00000000)
[04 oct 2022, 13:37:39] -Warning ** [/dev/cdc-wdm0] discarding 512 bytes in stream as message validation fails: Invalid message size: information buffer incomplete
[04 oct 2022, 13:37:39] -Warning ** [/dev/cdc-wdm0] discarding 512 bytes in stream as message validation fails: Invalid message size: information buffer incomplete
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] received message... (partial fragment)
>>>>>> RAW:
>>>>>> length = 64
>>>>>> data = 03:00:00:80:40:00:00:00:02:00:00:00...
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] received message fragment (translated)...
>>>>>> Header:
>>>>>> length = 64
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 2
>>>>>> Fragment header:
>>>>>> total = 3
>>>>>> current = 2
[04 oct 2022, 13:37:39] [Debug] [client 4,0x00000003] sending request to device failed: Expecting fragment '0/3', got '2/3'
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<< length = 16
<<<<<< data = 04:00:00:00:10:00:00:00:02:00:00:00...
[04 oct 2022, 13:37:39] [Debug] [/dev/cdc-wdm0] sent message (translated)...
<<<<<< Header:
<<<<<< length = 16
<<<<<< type = host-error (0x00000004)
<<<<<< transaction = 2
<<<<<< Contents:
<<<<<< error = 'FragmentOutOfSequence' (0x00000002)