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