From 4a5653cd2859308ada4bbf5ffc9fb9b283eef31a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 27 Jun 2017 11:45:22 -0400 Subject: [PATCH] Avoid segfaults when some display vector is an empty string * src/xdisp.c (next_element_from_display_vector): Don't try accessing the dpvec[] array if its size is zero. (Bug#27504) --- src/xdisp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 784848913c0..8bc5d81f448 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -7768,9 +7768,8 @@ next_element_from_display_vector (struct it *it) /* KFS: This code used to check ip->dpvec[0] instead of the current element. That seemed totally bogus - so I changed it... */ - gc = it->dpvec[it->current.dpvec_index]; - - if (GLYPH_CODE_P (gc)) + if (it->dpend - it->dpvec > 0 /* empty dpvec[] is invalid */ + && (gc = it->dpvec[it->current.dpvec_index], GLYPH_CODE_P (gc))) { struct face *this_face, *prev_face, *next_face; -- 2.39.2