# HG changeset patch # User Fabrice Bellet # Date 1573399795 -3600 # Node ID 0682910c702a4c21c6d49276088cbdaa4e8f49dc # Parent e3d3676df7582c70607dee4961b9f8ca455bb2a2 fix heap-use-after-free in prefs removal diff -r e3d3676df758 -r 0682910c702a libpurple/prefs.c --- a/libpurple/prefs.c Wed Dec 18 22:41:28 2019 +0100 +++ b/libpurple/prefs.c Sun Nov 10 16:29:55 2019 +0100 @@ -789,12 +789,15 @@ } child = pref->first_child; + pref->first_child = NULL; while (child) { struct purple_pref *next; if (child->first_child) { next = child->first_child; + child->first_child = NULL; } else if (child->sibling) { next = child->sibling; + child->sibling = NULL; free_pref(child); } else { if (child->parent != pref) {