1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 10 Jul 2019 20:26:23 -0400
Subject: bidi: Be safer against bad input
Don't run off the end of an array that we
allocated to certain length.
Bug: https://gitlab.gnome.org/GNOME/pango/issues/342
Origin: upstream, 1.44, commit:490f8979a260c16b1df055eab386345da18a2d54)
CVE: CVE-2019-1010238
Bug-Debian: https://bugs.debian.org/933860
---
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 a49e06d..d169525 100644
--- a/pango/pango-bidi-type.c
+++ b/pango/pango-bidi-type.c
@@ -179,8 +179,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))
|