x11vnc: fix double X_UNLOCK on xrandr events

check_xrandr_event() assumes X_LOCK is taken before it is called, and
currently calls X_UNLOCK on behalf of the caller. But in practice, all
callers assume that the lock is still held after check_xrandr_event()
returns. In particular, this leads to a double-unlock and crash in
check_xevents() on any xrandr event.
pull/1/head
Will Thompson 10 years ago committed by Martin T. H. Sandsmark
parent 3238443dc1
commit dca1048239

@ -268,6 +268,7 @@ int check_xrandr_event(char *msg) {
/* under do_change caller normally returns before its X_UNLOCK */ /* under do_change caller normally returns before its X_UNLOCK */
X_UNLOCK; X_UNLOCK;
handle_xrandr_change(rev->width, rev->height); handle_xrandr_change(rev->width, rev->height);
X_LOCK;
} }
if (qout) { if (qout) {
return do_change; return do_change;

Loading…
Cancel
Save