Subject: bug#31373: 26.1; frame-list-z-order segfaults on initial daemon frame

From: Noam Postavsky <[email-masked]>
Date: Mon, 7 May 2018 14:08:19 -0400

On 7 May 2018 at 13:59, Eli Zaretskii <[email-masked]> wrote:
>> Date: Mon, 07 May 2018 08:26:01 +0200
>> From: martin rudalics <[email-masked]>
>>
>> -         if (XFRAME (frame)->output_data.x->parent_desc == children[i]
>> -             || FRAME_OUTER_WINDOW (XFRAME (frame)) == children[i])
>> +            if (FRAME_X_P (frame)
>> +                && (XFRAME (frame)->output_data.x->parent_desc == children[i]
>> +                    || FRAME_OUTER_WINDOW (XFRAME (frame)) == children[i]))
>>
>> Thank you.  Eli, I think Noam should push this to 26.1, if still
>> possible.
>
> Why?  The workaround is very simple: don't call that function in a
> daemon session that has no GUI frames.

Ah, I think you missed that the segfault happens in a daemon session
that *does* have GUI frames.

I would also note that w32_frame_list_z_order makes the equivalent
FRAME_W32_P check via x_window_to_frame.