From d438e0e954c8b3e8d6e29eb1a996f0f86b5d77c1 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 26 Nov 2020 09:41:19 +0100 Subject: [PATCH] Prevent infinite loop on OpenClipboard. --- src/Windows/Avalonia.Win32/ClipboardImpl.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Windows/Avalonia.Win32/ClipboardImpl.cs b/src/Windows/Avalonia.Win32/ClipboardImpl.cs index 0475a9d607..047b7c361f 100644 --- a/src/Windows/Avalonia.Win32/ClipboardImpl.cs +++ b/src/Windows/Avalonia.Win32/ClipboardImpl.cs @@ -17,8 +17,12 @@ namespace Avalonia.Win32 private async Task OpenClipboard() { + var i = OleRetryCount; + while (!UnmanagedMethods.OpenClipboard(IntPtr.Zero)) { + if (--i == 0) + throw new TimeoutException("Timeout opening clipboard."); await Task.Delay(100); }