140c140
<     if (s->buf_ptr > s->buffer) {
---
>     if (s->buf_ptr > s->buffer && (!s->max_packet_size || s->buf_ptr - s->buffer == s->max_packet_size)) {
148c148,150
<     s->buf_ptr = s->buffer;
---
>     if (s->buf_ptr - s->buffer == 0 || !s->max_packet_size || s->buf_ptr - s->buffer == s->max_packet_size) {
>         s->buf_ptr = s->buffer;
>     }
