diff --git a/xtldr2/textui.c b/xtldr2/textui.c index 3901af1..b1cc398 100644 --- a/xtldr2/textui.c +++ b/xtldr2/textui.c @@ -765,7 +765,7 @@ BlDisplayInputDialog(IN PWCHAR Caption, { if(InputFieldLength > 0 && TextPosition < InputFieldLength) { - RtlMoveMemory(InputFieldBuffer + TextPosition, InputFieldBuffer + TextPosition + 1, InputFieldLength - TextPosition); + RtlMoveMemory(InputFieldBuffer + TextPosition, InputFieldBuffer + TextPosition + 1, (InputFieldLength - TextPosition) * sizeof(WCHAR)); InputFieldLength--; InputFieldBuffer[InputFieldLength] = 0; } @@ -779,7 +779,7 @@ BlDisplayInputDialog(IN PWCHAR Caption, if(InputFieldLength > 0 && TextPosition > 0 && TextPosition <= InputFieldLength) { TextPosition--; - RtlMoveMemory(InputFieldBuffer + TextPosition, InputFieldBuffer + TextPosition + 1, InputFieldLength - TextPosition); + RtlMoveMemory(InputFieldBuffer + TextPosition, InputFieldBuffer + TextPosition + 1, (InputFieldLength - TextPosition) * sizeof(WCHAR)); InputFieldLength--; InputFieldBuffer[InputFieldLength] = 0; } @@ -796,7 +796,7 @@ BlDisplayInputDialog(IN PWCHAR Caption, { if(InputFieldLength < Handle.Width - 8 - 1 && TextPosition < Handle.Width - 8 - 1) { - RtlMoveMemory(InputFieldBuffer + TextPosition + 1, InputFieldBuffer + TextPosition, InputFieldLength - TextPosition); + RtlMoveMemory(InputFieldBuffer + TextPosition + 1, InputFieldBuffer + TextPosition, (InputFieldLength - TextPosition) * sizeof(WCHAR)); InputFieldBuffer[TextPosition] = Key.UnicodeChar; TextPosition++; InputFieldLength++;