From afa4a3a4ea356821c080a5ca6b75ebfd35817e23 Mon Sep 17 00:00:00 2001 From: "jabber.developer2" Date: Thu, 25 Dec 2025 22:47:10 +0300 Subject: [PATCH] Fix GString memory leak in read_stream function The 'stream' GString was not freed before returning from read_stream() in two places: 1. When kill_recv is TRUE at the start of the loop 2. At the end of the function after the loop exits Added g_string_free(stream, TRUE) before both return statements. --- src/server/server.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/server.c b/src/server/server.c index ef04ae0..f6f9399 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -109,6 +109,7 @@ read_stream(void) while (TRUE) { if (kill_recv) { _shutdown(); + g_string_free(stream, TRUE); return 0; } @@ -167,6 +168,7 @@ read_stream(void) memset(buf, 0, sizeof(buf)); } + g_string_free(stream, TRUE); return 0; }