diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-01-24 01:00:44 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-01-24 01:00:44 +0000 |
commit | f11778742f78e8d75e7f260ec966e98257821730 (patch) | |
tree | bfacab92aa9ff99fb56b11f495fd50fe81684084 | |
parent | acc6f7bf03a5e1ca5d2e1e2206d5005b8ba0d810 (diff) | |
parent | 895759096309e7ce97c6fb019381b000df7d8e34 (diff) | |
download | pango-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.c | 9 |
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; } } } |