-
-
Notifications
You must be signed in to change notification settings - Fork 600
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix race condition in VNC event queue #519
Conversation
VNC plugin uses GQueue to store events. GQueue is not threadsafe and needs protection when accessed from different threads. The problem may be reproduced on original code by opening vnc connection and quickly scrolling up and down some window. Eventually session locks. This patch addresses this issues? Signed-off-by: Nikolay Martynov <[email protected]>
Tested on Debian 7, is ok. I will test later in other OSes before merging. |
The one I've described is a bit artificial although reproducible on quite fast laptop. I just open 'pluma', type in 2 pages of text and start scrolling up and down. :) The ultimate issue I hope this patch would solve is remmina crashes with vnc connection running:
That one is caused by heap corruption which I think may be caused by unprotected access to queue. So far it was working good. |
Fix race condition in VNC event queue
Thank you @mar-kolya. |
Fix race condition in VNC event queue
Fix race condition in VNC event queue
Fix race condition in VNC event queue
Fix race condition in VNC event queue
VNC plugin uses GQueue to store events. GQueue is not threadsafe
and needs protection when accessed from different threads.
The problem may be reproduced on original code by opening vnc
connection and quickly scrolling up and down some window. Eventually
session locks. This patch addresses this issues?
Signed-off-by: Nikolay Martynov [email protected]