From 79b052230c00d593d9d3f08137f797ace0331bf0 Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <stapelberg@users.noreply.github.com>
Date: Thu, 7 Mar 2019 14:58:53 +0100
Subject: [PATCH] x.c: correctly free con->frame_buffer in _x_con_kill

This fixes a crash which I could not reproduce in a testcase with reasonable effort, but the user reported the fix works.

Compare with src/x.c:946.

fixes #3554
fixes #3645
---
 src/x.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/x.c b/src/x.c
index f643a9b3..e6d875e5 100644
--- a/src/x.c
+++ b/src/x.c
@@ -268,6 +268,7 @@ static void _x_con_kill(Con *con) {
     draw_util_surface_free(conn, &(con->frame));
     draw_util_surface_free(conn, &(con->frame_buffer));
     xcb_free_pixmap(conn, con->frame_buffer.id);
+    con->frame_buffer.id = XCB_NONE;
     state = state_for_frame(con->frame.id);
     CIRCLEQ_REMOVE(&state_head, state, state);
     CIRCLEQ_REMOVE(&old_state_head, state, old_state);