From 1a3928f33c76074a8d59eeca2b58187774cd7b4e Mon Sep 17 00:00:00 2001 From: Nicholas Rishel Date: Thu, 9 Apr 2020 16:43:09 -0600 Subject: Fix T75546: Solve possible endless loop in wintab initialisation Some Wintab drivers report a zero length queue, this causes an unplanned never ending loop. Differential Revision: https://developer.blender.org/D7392 Reviewed by: Ray Molenkamp --- intern/ghost/intern/GHOST_WindowWin32.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'intern/ghost') diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index d4fe7af8861..1ca0dd47cbe 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -1072,11 +1072,10 @@ void GHOST_WindowWin32::initializeWintab() // Wintab provides no way to determine the maximum queue size aside from checking if attempts // to change the queue size are successful. const int maxQueue = 500; - int initialQueueSize = m_wintab.queueSizeGet(m_wintab.context); - int queueSize = initialQueueSize; + int queueSize = m_wintab.queueSizeGet(m_wintab.context); while (queueSize < maxQueue) { - int testSize = min(queueSize + initialQueueSize, maxQueue); + int testSize = min(queueSize + 16, maxQueue); if (m_wintab.queueSizeSet(m_wintab.context, testSize)) { queueSize = testSize; } -- cgit v1.2.3