1234567891011121314151617181920212223242526272829303132333435363738 |
- From 71aaeaf020340412b8d012fe23a556c0420eda5f Mon Sep 17 00:00:00 2001
- From: Matthias Clasen <mclasen@redhat.com>
- Date: Fri, 17 Aug 2018 22:29:36 -0400
- Subject: [PATCH] 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.
- Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- ---
- pango/pango-emoji.c | 6 ++++++
- 1 file changed, 6 insertions(+)
- diff --git a/pango/pango-emoji.c b/pango/pango-emoji.c
- index 0e332dff..29472452 100644
- --- a/pango/pango-emoji.c
- +++ b/pango/pango-emoji.c
- @@ -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;
- }
- }
- --
- 2.11.0
|