diff options
author | Nicholas Rishel <nicholas_rishel> | 2020-04-10 01:43:09 +0300 |
---|---|---|
committer | Ray Molenkamp <github@lazydodo.com> | 2020-04-10 01:43:09 +0300 |
commit | 1a3928f33c76074a8d59eeca2b58187774cd7b4e (patch) | |
tree | 446352f2d2a20d55ddc9c69a9d64a65f124e1b67 | |
parent | 5ebbd8f672175ed19fc67f3dd9d3841c8985e211 (diff) |
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
-rw-r--r-- | intern/ghost/intern/GHOST_WindowWin32.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
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; } |