# HG changeset patch # User Daniel Atallah # Date 1176989568 0 # Node ID f1c2ff731fd9c1af0c2556282c863ee1fcc881ff # Parent d465bbc0f75952b9b0a383ad764d3a2d18a3d5d9 Fix use before initialization and use after freeing (This is still not being used, but I figured I'd fix the stuff that I noticed). diff -r d465bbc0f759 -r f1c2ff731fd9 libpurple/prefs.c --- a/libpurple/prefs.c Thu Apr 19 01:51:32 2007 +0000 +++ b/libpurple/prefs.c Thu Apr 19 13:32:48 2007 +0000 @@ -1116,17 +1116,19 @@ } } + oldname = pref_full_name(oldpref); + newname = pref_full_name(newpref); + if (oldpref->type != newpref->type) { purple_debug_error("prefs", "Unable to rename %s to %s: differing types\n", oldname, newname); + g_free(oldname); + g_free(newname); return; } - oldname = pref_full_name(oldpref); - newname = pref_full_name(newpref); purple_debug_info("prefs", "Renaming %s to %s\n", oldname, newname); g_free(oldname); - g_free(newname); switch(oldpref->type) { case PURPLE_PREF_NONE: @@ -1150,6 +1152,7 @@ purple_prefs_set_path_list(newname, oldpref->value.stringlist); break; } + g_free(newname); remove_pref(oldpref); }