From: Zhang Yi <yi.z.zhang(a)linux.intel.com>
object_get_canonical_path_component() returns a string which
must be freed using g_free().
Reported-by: Peter Maydell <peter.maydell(a)linaro.org>
Signed-off-by: Michael S. Tsirkin <mst(a)redhat.com>
Signed-off-by: Zhang Yi <yi.z.zhang(a)linux.intel.com>
Message-Id:
<7328fb16c394eaf5d65437d11c2a9343647b6d3d.1535471899.git.yi.z.zhang(a)linux.intel.com>
Reviewed-by: Eduardo Habkost <ehabkost(a)redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost(a)redhat.com>
---
backends/hostmem-file.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
index e64074954f..639c8d4307 100644
--- a/backends/hostmem-file.c
+++ b/backends/hostmem-file.c
@@ -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;
}
--
2.18.0.rc1.1.g3f1ff2140