
<       memmove (buf, buf + start, initial_read - start);
---
>       if (start < initial_read)
>       {
>           size_t copy_size = MIN(initial_read - start, bufsize);
>           memmove (buf, buf + start, copy_size);
>       }
