summaryrefslogtreecommitdiffstats
path: root/scsi
diff options
context:
space:
mode:
authorMarkus Armbruster2020-07-14 18:02:00 +0200
committerMarkus Armbruster2020-07-21 16:23:43 +0200
commit7a309cc95b862be74711e7a35997daa3f885651a (patch)
tree1417043015cf7f35de0ebd21ff2d72a05a5b3b52 /scsi
parentMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20200720'... (diff)
downloadqemu-7a309cc95b862be74711e7a35997daa3f885651a.tar.gz
qemu-7a309cc95b862be74711e7a35997daa3f885651a.tar.xz
qemu-7a309cc95b862be74711e7a35997daa3f885651a.zip
qom: Change object_get_canonical_path_component() not to malloc
object_get_canonical_path_component() returns a malloced copy of a property name on success, null on failure. 19 of its 25 callers immediately free the returned copy. Change object_get_canonical_path_component() to return the property name directly. Since modifying the name would be wrong, adjust the return type to const char *. Drop the free from the 19 callers become simpler, add the g_strdup() to the other six. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20200714160202.3121879-4-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Li Qiang <liq3ea@gmail.com>
Diffstat (limited to 'scsi')
-rw-r--r--scsi/pr-manager-helper.c3
-rw-r--r--scsi/pr-manager.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/scsi/pr-manager-helper.c b/scsi/pr-manager-helper.c
index bf62cbec11..5acccfb4e3 100644
--- a/scsi/pr-manager-helper.c
+++ b/scsi/pr-manager-helper.c
@@ -42,11 +42,10 @@ typedef struct PRManagerHelper {
static void pr_manager_send_status_changed_event(PRManagerHelper *pr_mgr)
{
- char *id = object_get_canonical_path_component(OBJECT(pr_mgr));
+ const char *id = object_get_canonical_path_component(OBJECT(pr_mgr));
if (id) {
qapi_event_send_pr_manager_status_changed(id, !!pr_mgr->ioc);
- g_free(id);
}
}
diff --git a/scsi/pr-manager.c b/scsi/pr-manager.c
index 0c866e8698..32b9287e68 100644
--- a/scsi/pr-manager.c
+++ b/scsi/pr-manager.c
@@ -128,7 +128,7 @@ static int query_one_pr_manager(Object *object, void *opaque)
elem = g_new0(PRManagerInfoList, 1);
info = g_new0(PRManagerInfo, 1);
- info->id = object_get_canonical_path_component(object);
+ info->id = g_strdup(object_get_canonical_path_component(object));
info->connected = pr_manager_is_connected(pr_mgr);
elem->value = info;
elem->next = NULL;