Commit acdf9bb2 authored by Michael Natterer's avatar Michael Natterer 😴

app: fix infinite recursion crash in gimp_item_is_position_locked()

When checking if any linked item is position-locked in
gimp_item_linked_is_locked(), temporarily set the items to not being
linked, or gimp_item_real_is_position_locked() will call
gimp_item_linked_is_locked() again, and so on...
parent fe19ad97
......@@ -49,15 +49,20 @@ gimp_item_linked_is_locked (const GimpItem *item)
list = gimp_image_item_list_filter (item, list, TRUE, FALSE);
for (l = list; l; l = g_list_next (l))
for (l = list; l && ! locked; l = g_list_next (l))
{
GimpItem *item = l->data;
/* temporarily set the item to not being linked, or we will
* run into a recursion because gimp_item_is_position_locked()
* call this function if the item is linked
*/
gimp_item_set_linked (item, FALSE, FALSE);
if (gimp_item_is_position_locked (item))
{
locked = TRUE;
break;
}
locked = TRUE;
gimp_item_set_linked (item, TRUE, FALSE);
}
g_list_free (list);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment