diff options
author | Eli Zaretskii <eliz@gnu.org> | 2021-11-15 15:35:31 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2021-11-15 15:35:31 +0200 |
commit | 5044151486cfd88edceb841d2bf8378dcc906e34 (patch) | |
tree | 54427fe66c15f7e94640f23ae36eb4a886fe6e5b /src | |
parent | 199e2468d3053d9cb81b5654664d88d4c8cec3ad (diff) | |
download | emacs-5044151486cfd88edceb841d2bf8378dcc906e34.tar.gz |
Avoid segfaults due to freed face cache
* src/xfaces.c (face_at_buffer_position): Make sure DEFAULT_FACE
is usable. (Bug#51864)
Diffstat (limited to 'src')
-rw-r--r-- | src/xfaces.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index 5e63e87d751..18e65d07e20 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -6423,7 +6423,10 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos, else face_id = lookup_basic_face (w, f, DEFAULT_FACE_ID); - default_face = FACE_FROM_ID (f, face_id); + default_face = FACE_FROM_ID_OR_NULL (f, face_id); + if (!default_face) + default_face = FACE_FROM_ID (f, + lookup_basic_face (w, f, DEFAULT_FACE_ID)); } /* Optimize common cases where we can use the default face. */ |