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)
This commit is contained in:
Eli Zaretskii 2017-06-27 11:45:22 -04:00
parent 1771d9b808
commit 4a5653cd28

View file

@ -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;