
<   for (i = 3; i < size / 2; i *= 2)
<       memcpy (r + i, r, i);
---
>   for (i = 3; i < size / 2; i *= 2)
>       if (i + i <= size)
>           memcpy (r + i, r, i);
