]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid segfaults due to freed face cache
authorEli Zaretskii <eliz@gnu.org>
Mon, 15 Nov 2021 13:35:31 +0000 (15:35 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 15 Nov 2021 13:35:31 +0000 (15:35 +0200)
* src/xfaces.c (face_at_buffer_position): Make sure DEFAULT_FACE
is usable.  (Bug#51864)

src/xfaces.c

index 5e63e87d751d05d46b0d4d66810d831f2eae3330..18e65d07e20b3ceae3a369de3a2d78771984ed3e 100644 (file)
@@ -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.  */