- for (; pc->overread > 0; pc->overread--) {
- pc->buffer[pc->index++]= pc->buffer[pc->overread_index++];
+ if (pc->overread > 0) {
+ memmove(pc->buffer + pc->index, pc->buffer + pc->overread_index, pc->overread);
+ pc->index += pc->overread;
+ pc->overread_index += pc->overread;
+ pc->overread = 0;