From a6d178b6af4bb4cd7ba28299c3ddd9d90bcbaaa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Wed, 7 Jul 2021 18:51:02 +0200 Subject: [PATCH] randr: Bail from RRTellChanged if there's no root window yet This can happen if RRTellChanged is called during initialization. Continuing in that case makes no sense conceptually: * Any event sent over the wire requires a corresponding window. * No root window probably means there can't be any clients which could receive the events. In practice, it would result in a crash down the road due to dereferencing the NULL ScreenRec::root pointer. Reviewed-by: Olivier Fourdan --- randr/randr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/randr/randr.c b/randr/randr.c index a4f519888..3f94c2f6c 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -615,6 +615,10 @@ RRTellChanged(ScreenPtr pScreen) primarysp = pScrPriv; } + /* If there's no root window yet, can't send events */ + if (!primary->root) + return; + xorg_list_for_each_entry(iter, &primary->secondary_list, secondary_head) { pSecondaryScrPriv = rrGetScrPriv(iter);