Subject: bug#14970: crash deleting frames

From: Eli Zaretskii <[email-masked]>
Date: Mon, 29 Jul 2013 18:29:20 +0300

> Date: Mon, 29 Jul 2013 09:54:58 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
>  > ... (you cannot just
>  > use FRAME_LIVE_P here, because it will crash in the same way).
> 
> How does it crash?

The original crash was a SIGSEGV because f was a null pointer, and
FRAME_SELECTED_WINDOW dereferenced it.  But FRAME_LIVE_P also
dereferences its argument, so it would have crashed with the same
SIGSEGV.

I guess you are thinking about a frame pointer computed from a Lisp
frame object, in which case the pointer can never be null.  But this
is not that case: here we get the frame pointer from a call to
x_window_to_frame, which returns a null pointer to signal that it
failed to find an Emacs frame that corresponds to a Windows window.