Skip to content

Commit

Permalink
hostmem-file: fixed the memory leak while get pmem path.
Browse files Browse the repository at this point in the history
object_get_canonical_path_component() returns a string which
must be freed using g_free().

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
Message-Id: <7328fb16c394eaf5d65437d11c2a9343647b6d3d.1535471899.git.yi.z.zhang@linux.intel.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
  • Loading branch information
Zhang Yi authored and ehabkost committed Oct 24, 2018
1 parent 13399aa commit a1f3bb1
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions backends/hostmem-file.c
Expand Up @@ -145,20 +145,26 @@ static void file_memory_backend_set_pmem(Object *o, bool value, Error **errp)
HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(o);

if (host_memory_backend_mr_inited(backend)) {
char *path = object_get_canonical_path_component(o);

error_setg(errp, "cannot change property 'pmem' of %s '%s'",
object_get_typename(o),
object_get_canonical_path_component(o));
path);
g_free(path);
return;
}

#ifndef CONFIG_LIBPMEM
if (value) {
Error *local_err = NULL;
char *path = object_get_canonical_path_component(o);

error_setg(&local_err,
"Lack of libpmem support while setting the 'pmem=on'"
" of %s '%s'. We can't ensure data persistence.",
object_get_typename(o),
object_get_canonical_path_component(o));
path);
g_free(path);
error_propagate(errp, local_err);
return;
}
Expand Down

0 comments on commit a1f3bb1

Please sign in to comment.