--- a/libpurple/purplemarkup.c Wed Jan 01 15:40:13 2025 -0600 +++ b/libpurple/purplemarkup.c Thu Jan 02 22:37:44 2025 -0600 @@ -625,9 +625,9 @@ } g_clear_list(&tags, g_free); if(xhtml_out) - *xhtml_out = g_string_free(xhtml, FALSE); + *xhtml_out = g_string_free_and_steal(xhtml); if(plain_out) - *plain_out = g_string_free(plain, FALSE); + *plain_out = g_string_free_and_steal(plain); if(url) g_string_free(url, TRUE); if (cdata) @@ -1024,7 +1024,7 @@ if (badchar(*t) || (g >= 127) || (*t == ')') || badentity(t)) { char *d; - url_buf = g_string_free(gurl_buf, FALSE); + url_buf = g_string_free_and_steal(gurl_buf); gurl_buf = NULL; /* strip off trailing periods */ @@ -1069,7 +1069,7 @@ c++; } - return g_string_free(ret, FALSE); + return g_string_free_and_steal(ret); } char *purple_unescape_text(const char *in) @@ -1094,7 +1094,7 @@ } } - return g_string_free(ret, FALSE); + return g_string_free_and_steal(ret); } char *purple_unescape_html(const char *html) @@ -1122,7 +1122,7 @@ } } - return g_string_free(ret, FALSE); + return g_string_free_and_steal(ret); } char * @@ -1231,7 +1231,7 @@ } g_queue_free(q); - return g_string_free(ret, FALSE); + return g_string_free_and_steal(ret); } char *