Commit 71aaeaf0 authored by Matthias Clasen's avatar Matthias Clasen

Prevent an assertion with invalid Unicode sequences

Invalid Unicode sequences, such as 0x2665 0xfe0e 0xfe0f,
can trick the Emoji iter code into returning an empty
segment, which then triggers an assertion in the itemizer.

Prevent this by ensuring that we make progress.

This issue was reported by Jeffrey M.
parent ccfd3b46
Pipeline #25889 passed with stage
in 6 minutes and 12 seconds
......@@ -253,6 +253,12 @@ _pango_emoji_iter_next (PangoEmojiIter *iter)
if (iter->is_emoji == PANGO_EMOJI_TYPE_IS_EMOJI (current_emoji_type))
{
iter->is_emoji = !PANGO_EMOJI_TYPE_IS_EMOJI (current_emoji_type);
/* Make sure we make progress. Weird sequences, like a VC15 followed
* by VC16, can trick us into stalling otherwise. */
if (iter->start == iter->end)
iter->end = g_utf8_next_char (iter->end);
return TRUE;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment