[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 4d176b7 3/7: Fix ftfont_open2 failure cleanup
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 4d176b7 3/7: Fix ftfont_open2 failure cleanup |
Date: |
Thu, 7 Jun 2018 22:11:57 -0400 (EDT) |
branch: master
commit 4d176b742774670c5c265a06f742e63a43f5f7ab
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Fix ftfont_open2 failure cleanup
* src/ftfont.c (ftfont_open2): Don’t increment counter if failing.
Avoid use-after-free once the increment bug is fixed.
---
src/ftfont.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/ftfont.c b/src/ftfont.c
index 9a8777e..a534670 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1131,16 +1131,19 @@ ftfont_open2 (struct frame *f,
return Qnil;
}
}
- set_save_integer (val, 1, XSAVE_INTEGER (val, 1) + 1);
size = XINT (AREF (entity, FONT_SIZE_INDEX));
if (size == 0)
size = pixel_size;
if (FT_Set_Pixel_Sizes (ft_face, size, size) != 0)
{
if (XSAVE_INTEGER (val, 1) == 0)
- FT_Done_Face (ft_face);
+ {
+ FT_Done_Face (ft_face);
+ cache_data->ft_face = NULL;
+ }
return Qnil;
}
+ set_save_integer (val, 1, XSAVE_INTEGER (val, 1) + 1);
ASET (font_object, FONT_FILE_INDEX, filename);
font = XFONT_OBJECT (font_object);
- [Emacs-diffs] master updated (9966842 -> e2a9800), Paul Eggert, 2018/06/07
- [Emacs-diffs] master 4d176b7 3/7: Fix ftfont_open2 failure cleanup,
Paul Eggert <=
- [Emacs-diffs] master 7c16392 1/7: Fix GC-related commentary, Paul Eggert, 2018/06/07
- [Emacs-diffs] master b76389f 2/7: Don’t over-align if WIDE_EMACS_INT, Paul Eggert, 2018/06/07
- [Emacs-diffs] master a064128 4/7: * src/.gdbinit: Omit soon-obsolete comment., Paul Eggert, 2018/06/07
- [Emacs-diffs] master e2a9800 7/7: Fit kill_buffer_xwidgets into 80, Paul Eggert, 2018/06/07
- [Emacs-diffs] master a0aa1d4 5/7: New function record_unwind_protect_excursion, Paul Eggert, 2018/06/07
- [Emacs-diffs] master 0e1bfd3 6/7: Minor cleanup of save_excursion_restore, Paul Eggert, 2018/06/07