uclient-fetch: init_ca_cert: fix memory leak
authorPetr Štetiar <ynezz@true.cz>
Tue, 8 Dec 2020 17:54:57 +0000 (18:54 +0100)
committerPetr Štetiar <ynezz@true.cz>
Fri, 11 Dec 2020 10:17:22 +0000 (11:17 +0100)
Fixes following memory leak:

 $ valgrind --quiet --leak-check=full uclient-fetch -q http://127.0.0.1:1922/does-not-exist

  51 (16 direct, 35 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 9
   at 0x4C31A3F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4C33D84: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x553C7DF: glob_in_dir (glob.c:1410)
   by 0x553D5E8: glob@@GLIBC_2.27 (glob.c:1097)
   by 0x401D62: init_ca_cert (uclient-fetch.c:503)
   by 0x401D62: main (uclient-fetch.c:741)

Signed-off-by: Petr Štetiar <ynezz@true.cz>
uclient-fetch.c

index 1c66ac6d33ae6d5cf24bd8379e7d5233746ca1b5..bbf5eec58d710c6c8e58da0e7a62ea8dd2835559 100644 (file)
@@ -503,6 +503,7 @@ static void init_ca_cert(void)
        glob("/etc/ssl/certs/*.crt", 0, NULL, &gl);
        for (i = 0; i < gl.gl_pathc; i++)
                ssl_ops->context_add_ca_crt_file(ssl_ctx, gl.gl_pathv[i]);
        glob("/etc/ssl/certs/*.crt", 0, NULL, &gl);
        for (i = 0; i < gl.gl_pathc; i++)
                ssl_ops->context_add_ca_crt_file(ssl_ctx, gl.gl_pathv[i]);
+       globfree(&gl);
 }
 
 static void init_ustream_ssl(void)
 }
 
 static void init_ustream_ssl(void)