summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-01-24 01:00:44 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-01-24 01:00:44 +0000
commitf11778742f78e8d75e7f260ec966e98257821730 (patch)
treebfacab92aa9ff99fb56b11f495fd50fe81684084
parentacc6f7bf03a5e1ca5d2e1e2206d5005b8ba0d810 (diff)
parent895759096309e7ce97c6fb019381b000df7d8e34 (diff)
downloadpango-f11778742f78e8d75e7f260ec966e98257821730.tar.gz
Merge branch 'attr-list-overflow' into 'master'
Attr list overflow Closes #455 See merge request GNOME/pango!278
-rw-r--r--pango/pango-attributes.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c
index 4f96135b..3ef76a70 100644
--- a/pango/pango-attributes.c
+++ b/pango/pango-attributes.c
@@ -1697,6 +1697,10 @@ pango_attr_list_update (PangoAttrList *list,
{
guint i, p;
+ g_return_if_fail (pos >= 0);
+ g_return_if_fail (remove >= 0);
+ g_return_if_fail (add >= 0);
+
if (list->attributes)
for (i = 0, p = list->attributes->len; i < p; i++)
{
@@ -1729,7 +1733,10 @@ pango_attr_list_update (PangoAttrList *list,
}
else if (attr->end_index >= pos + remove)
{
- attr->end_index += add - remove;
+ if (G_MAXUINT - attr->end_index < add - remove)
+ attr->end_index = G_MAXUINT;
+ else
+ attr->end_index += add - remove;
}
}
}