diff
<     if (gsm->len > gsm->mru) {
<         // Handle error: length exceeds MRU
<     }
<     gsm->count = 0;
<     if (!gsm->len)
<         gsm->state = GSM_DATA;
---
>     if (gsm->len <= gsm->mru) {
>         gsm->count = 0;
>         if (!gsm->len)
>             gsm->state = GSM_DATA;
>     } else {
>         // Handle error: length exceeds MRU
>     }
