| From 490f8979a260c16b1df055eab386345da18a2d54 Mon Sep 17 00:00:00 2001 |
| From: Matthias Clasen <mclasen@redhat.com> |
| Date: Wed, 10 Jul 2019 20:26:23 -0400 |
| Subject: [PATCH] bidi: Be safer against bad input |
| |
| Don't run off the end of an array that we |
| allocated to certain length. |
| |
| Closes: https://gitlab.gnome.org/GNOME/pango/issues/342 |
| --- |
| pango/pango-bidi-type.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| diff --git a/pango/pango-bidi-type.c b/pango/pango-bidi-type.c |
| index 3e46b66c..5c02dbbb 100644 |
| --- a/pango/pango-bidi-type.c |
| +++ b/pango/pango-bidi-type.c |
| @@ -181,8 +181,11 @@ pango_log2vis_get_embedding_levels (const gchar *text, |
| for (i = 0, p = text; p < text + length; p = g_utf8_next_char(p), i++) |
| { |
| gunichar ch = g_utf8_get_char (p); |
| - FriBidiCharType char_type; |
| - char_type = fribidi_get_bidi_type (ch); |
| + FriBidiCharType char_type = fribidi_get_bidi_type (ch); |
| + |
| + if (i == n_chars) |
| + break; |
| + |
| bidi_types[i] = char_type; |
| ored_types |= char_type; |
| if (FRIBIDI_IS_STRONG (char_type)) |
| -- |
| 2.21.0 |
| |