From 9cdf052c5576cad19e369136c9797d339f8fa5dd Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 21 Aug 2021 15:42:18 -0400 Subject: layout: Validate external log attrs These might be nonsense, better do some checks. --- pango/pango-layout.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pango/pango-layout.c b/pango/pango-layout.c index e5e4806e..94259383 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -1591,7 +1591,14 @@ pango_layout_set_log_attrs (PangoLayout *layout, const PangoLogAttr *attrs, int n_attrs) { - g_return_if_fail (layout->n_chars + 1 == n_attrs); + GError *error = NULL; + + if (!pango_validate_log_attrs (layout->text, layout->length, attrs, n_attrs, &error)) + { + g_warning ("pango_layout_set_log_attrs: %s", error->message); + g_error_free (error); + return; + } if (!layout->log_attrs) layout->log_attrs = g_new (PangoLogAttr, layout->n_chars + 1); -- cgit v1.2.1