emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-28 5044151: Avoid segfaults due to freed face cache


From: Eli Zaretskii
Subject: emacs-28 5044151: Avoid segfaults due to freed face cache
Date: Mon, 15 Nov 2021 08:36:17 -0500 (EST)

branch: emacs-28
commit 5044151486cfd88edceb841d2bf8378dcc906e34
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Avoid segfaults due to freed face cache
    
    * src/xfaces.c (face_at_buffer_position): Make sure DEFAULT_FACE
    is usable.  (Bug#51864)
---
 src/xfaces.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/xfaces.c b/src/xfaces.c
index 5e63e87..18e65d0 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.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]