c
<       memmove (buf, buf + start, initial_read - start)
---
>       size_t len = initial_read - start;
>       if (start >= 0 && start < bufsize && len >= 0 && len <= bufsize)
>       {
>           memmove (buf, buf + start, len);
>       }
