target/i386: Fix memory leak in sev_read_file_base64()

In sev_read_file_base64() we call g_file_get_contents(), which
allocates memory for the file contents.  We then base64-decode the
contents (which allocates another buffer for the decoded data), but
forgot to free the memory for the original file data.

Use g_autofree to ensure that the file data is freed.

Fixes: Coverity CID 1459997
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210820165650.2839-1-peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Peter Maydell 2021-08-20 17:56:50 +01:00 committed by Paolo Bonzini
parent 809954efc2
commit 523a3d9524

View File

@ -565,7 +565,7 @@ static int
sev_read_file_base64(const char *filename, guchar **data, gsize *len) sev_read_file_base64(const char *filename, guchar **data, gsize *len)
{ {
gsize sz; gsize sz;
gchar *base64; g_autofree gchar *base64 = NULL;
GError *error = NULL; GError *error = NULL;
if (!g_file_get_contents(filename, &base64, &sz, &error)) { if (!g_file_get_contents(filename, &base64, &sz, &error)) {