diff options
Diffstat (limited to 'src/xfont.c')
-rw-r--r-- | src/xfont.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/xfont.c b/src/xfont.c index d4d6ee7c10f..df69c9141bd 100644 --- a/src/xfont.c +++ b/src/xfont.c @@ -894,7 +894,10 @@ xfont_close (struct font *font) { struct xfont_info *xfi = (struct xfont_info *) font; - if (xfi->xfont) + /* This function may be called from GC when X connection is gone + (Bug#16093), and an attempt to free font resourses on invalid + display may lead to X protocol errors or segfaults. */ + if (xfi->xfont && x_display_info_for_display (xfi->display)) { block_input (); XFreeFont (xfi->display, xfi->xfont); |