diff --git a/PSReadLine/ReadLine.cs b/PSReadLine/ReadLine.cs index 677025aa..dabb0e86 100644 --- a/PSReadLine/ReadLine.cs +++ b/PSReadLine/ReadLine.cs @@ -1035,16 +1035,24 @@ public static void DigitArgument(ConsoleKeyInfo? key = null, object arg = null) public static void InvokePrompt(ConsoleKeyInfo? key = null, object arg = null) { var console = _singleton._console; - console.CursorVisible = false; if (arg is int newY) { + if (newY < 0 || newY >= console.BufferHeight) + throw new ArgumentOutOfRangeException(nameof(arg)); + + console.CursorVisible = false; console.SetCursorPosition(0, newY); } else { newY = _singleton._initialY - _singleton._options.ExtraPromptLineCount; + // Silently return if user has implicitly requested an impossible prompt invocation. + if (newY < 0) + return; + + console.CursorVisible = false; console.SetCursorPosition(0, newY); // We need to rewrite the prompt, so blank out everything from a previous prompt invocation