You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
974 B
29 lines
974 B
commit 490f8979a260c16b1df055eab386345da18a2d54 |
|
Author: Matthias Clasen <mclasen@redhat.com> |
|
Date: Wed Jul 10 20:26:23 2019 -0400 |
|
|
|
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 |
|
|
|
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))
|
|
|