
< 		gsm->buf[gsm->count++] = c;
< 		if (gsm->count == gsm->len)
---
> 		size_t safe_len = MIN(gsm->len, sizeof(gsm->buf));
> 		gsm->buf[gsm->count++] = c;
> 		if (gsm->count == safe_len)
