From nobody Fri May 3 04:17:27 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1585669481; cv=none; d=zohomail.com; s=zohoarc; b=T3gqQgO9crrtJikMbewPYGyocqQK0L85MWRt3J9IZ/0u2OtY4Ht/TgXEeG7acHr5dzrpfLOZYsampqkIa2jc5rz6GAdpQTcYECVoP9gnmXjKvVEw21KZ58gcLh7+vSGfrDoTxoouqsJ9mqIr2dq7KsFoZZz5AuaNomGO7w9M/D8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585669481; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:Sender:Subject:To; bh=rIePHzZMWcuRDpD7KiB9YdaHyh6XITDLWxaW9FzifxQ=; b=P+Ky8Ch1n9LIYL7jftUOF0MileToMLHrEtXGgfSBnYTz7Nqw99+OWYdQzf7mvn3VE20ukjHCJIYjudGqX/C96QHvd9OHxDiT8F6y9DAG/RT/YBv+W5gg0BVh/xa+2H+buhhpQeXSlqKVx2NSwEk52dDG+wCttpu/Wb1ulFLrKX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585669481614463.04490967649497; Tue, 31 Mar 2020 08:44:41 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-345-ajachLiKMxqNxkRl6TaE4A-1; Tue, 31 Mar 2020 11:44:38 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DE6F1101FC72; Tue, 31 Mar 2020 15:44:31 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 978E75C1C5; Tue, 31 Mar 2020 15:44:31 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F19C186C03; Tue, 31 Mar 2020 15:44:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 02VFiTEF020010 for ; Tue, 31 Mar 2020 11:44:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5032C2166B2F; Tue, 31 Mar 2020 15:44:29 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C2E52166B2A for ; Tue, 31 Mar 2020 15:44:26 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 130A58F8402 for ; Tue, 31 Mar 2020 15:44:26 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-427-c_KZo2SjNZOFKGdj7_1lPA-1; Tue, 31 Mar 2020 11:44:23 -0400 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02VFYOeo138045 for ; Tue, 31 Mar 2020 11:44:22 -0400 Received: from e06smtp07.uk.ibm.com (e06smtp07.uk.ibm.com [195.75.94.103]) by mx0a-001b2d01.pphosted.com with ESMTP id 3022f3k1mc-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 31 Mar 2020 11:44:22 -0400 Received: from localhost by e06smtp07.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 31 Mar 2020 16:44:19 +0100 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp07.uk.ibm.com (192.168.101.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 31 Mar 2020 16:44:17 +0100 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 02VFiI3H51118190 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 31 Mar 2020 15:44:18 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8188EAE045; Tue, 31 Mar 2020 15:44:18 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A1C47AE04D; Tue, 31 Mar 2020 15:44:17 +0000 (GMT) Received: from oc2388111647.ibm.com (unknown [9.85.74.251]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Tue, 31 Mar 2020 15:44:17 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585669480; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=rIePHzZMWcuRDpD7KiB9YdaHyh6XITDLWxaW9FzifxQ=; b=hals+ZUa+Gl+ylLLIEnnPb8FSFXfAEsk3XAAJ9xXjHT2180XVbqOmpP2elJ4tfQDVe6RD4 L91SHEE/lVHgDQeQsDvdCDuWmd12b88gyWbLcvbjCyLmJsQdGHrbmja9lOHue81YF37xfU tKtPBlXv425RckDmxMEYZTOeRqIKKFk= X-MC-Unique: ajachLiKMxqNxkRl6TaE4A-1 X-MC-Unique: c_KZo2SjNZOFKGdj7_1lPA-1 From: Seeteena Thoufeek To: libvir-list@redhat.com Subject: [PATCH] qemu_cgroup.c: use VIR_AUTOSTRINGLIST, g_autofree and g_autoptr Date: Tue, 31 Mar 2020 21:14:07 +0530 X-TM-AS-GCONF: 00 x-cbid: 20033115-0028-0000-0000-000003EF72DC X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 20033115-0029-0000-0000-000024B4F5F2 Message-Id: <1585669447-22848-1-git-send-email-s1seetee@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-03-31_05:2020-03-31, 2020-03-31 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 spamscore=0 suspectscore=3 mlxlogscore=871 malwarescore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003310138 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 02VFiTEF020010 X-loop: libvir-list@redhat.com Cc: s1seetee@linux.vnet.ibm.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 2 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Seeteena Thoufeek Reviewed-by: Daniel Henrique Barboza --- src/qemu/qemu_cgroup.c | 91 +++++++++++++++++++---------------------------= ---- 1 file changed, 35 insertions(+), 56 deletions(-) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index c0e30f6..d34c515 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -62,7 +62,7 @@ qemuSetupImagePathCgroup(virDomainObjPtr vm, { qemuDomainObjPrivatePtr priv =3D vm->privateData; int perms =3D VIR_CGROUP_DEVICE_READ; - char **targetPaths =3D NULL; + VIR_AUTOSTRINGLIST targetPaths =3D NULL; size_t i; int rv; int ret =3D -1; @@ -82,12 +82,11 @@ qemuSetupImagePathCgroup(virDomainObjPtr vm, virCgroupGetDevicePermsString(perms), rv); if (rv < 0) - goto cleanup; + return ret; =20 if (rv > 0) { /* @path is neither character device nor block device. */ - ret =3D 0; - goto cleanup; + return 0; } =20 if (virDevMapperGetTargets(path, &targetPaths) < 0 && @@ -95,7 +94,7 @@ qemuSetupImagePathCgroup(virDomainObjPtr vm, virReportSystemError(errno, _("Unable to get devmapper targets for %s"), path); - goto cleanup; + return ret; } =20 for (i =3D 0; targetPaths && targetPaths[i]; i++) { @@ -105,13 +104,10 @@ qemuSetupImagePathCgroup(virDomainObjPtr vm, virCgroupGetDevicePermsString(perms), rv); if (rv < 0) - goto cleanup; + return ret; } =20 - ret =3D 0; - cleanup: - virStringListFree(targetPaths); - return ret; + return 0; } =20 =20 @@ -739,7 +735,7 @@ static int qemuSetupDevicesCgroup(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverConfigPtr cfg =3D NULL; + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv->dr= iver); const char *const *deviceACL =3D NULL; int rv =3D -1; int ret =3D -1; @@ -757,15 +753,15 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm) return 0; } =20 - goto cleanup; + return ret; } =20 if (qemuSetupFirmwareCgroup(vm) < 0) - goto cleanup; + return ret; =20 for (i =3D 0; i < vm->def->ndisks; i++) { if (qemuSetupImageChainCgroup(vm, vm->def->disks[i]->src) < 0) - goto cleanup; + return ret; } =20 rv =3D virCgroupAllowDevice(priv->cgroup, 'c', DEVICE_PTY_MAJOR, -1, @@ -773,9 +769,8 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm) virDomainAuditCgroupMajor(vm, priv->cgroup, "allow", DEVICE_PTY_MAJOR, "pty", "rw", rv =3D=3D 0); if (rv < 0) - goto cleanup; + return ret; =20 - cfg =3D virQEMUDriverGetConfig(priv->driver); deviceACL =3D cfg->cgroupDeviceACL ? (const char *const *)cfg->cgroupDeviceACL : defaultDeviceACL; @@ -791,7 +786,7 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm) virDomainAuditCgroupMajor(vm, priv->cgroup, "allow", DEVICE_SND_MA= JOR, "sound", "rw", rv =3D=3D 0); if (rv < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; deviceACL[i] !=3D NULL; i++) { @@ -805,57 +800,54 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm) virDomainAuditCgroupPath(vm, priv->cgroup, "allow", deviceACL[i], = "rw", rv); if (rv < 0 && !virLastErrorIsSystemErrno(ENOENT)) - goto cleanup; + return ret; } =20 if (virDomainChrDefForeach(vm->def, true, qemuSetupChardevCgroupCB, vm) < 0) - goto cleanup; + return ret; =20 if (vm->def->tpm && qemuSetupTPMCgroup(vm) < 0) - goto cleanup; + return ret; =20 for (i =3D 0; i < vm->def->nhostdevs; i++) { /* This may allow /dev/vfio/vfio multiple times, but that * is not a problem. Kernel will have only one record. */ if (qemuSetupHostdevCgroup(vm, vm->def->hostdevs[i]) < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; i < vm->def->nmems; i++) { if (qemuSetupMemoryDevicesCgroup(vm, vm->def->mems[i]) < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; i < vm->def->ngraphics; i++) { if (qemuSetupGraphicsCgroup(vm, vm->def->graphics[i]) < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; i < vm->def->nvideos; i++) { if (qemuSetupVideoCgroup(vm, vm->def->videos[i]) < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; i < vm->def->ninputs; i++) { if (qemuSetupInputCgroup(vm, vm->def->inputs[i]) < 0) - goto cleanup; + return ret; } =20 for (i =3D 0; i < vm->def->nrngs; i++) { if (qemuSetupRNGCgroup(vm, vm->def->rngs[i]) < 0) - goto cleanup; + return ret; } =20 if (vm->def->sev && qemuSetupSEVCgroup(vm) < 0) - goto cleanup; + return ret; =20 - ret =3D 0; - cleanup: - virObjectUnref(cfg); - return ret; + return 0; } =20 =20 @@ -924,13 +916,13 @@ qemuInitCgroup(virDomainObjPtr vm, { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(priv->driver); + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv->dr= iver); =20 if (!virQEMUDriverIsPrivileged(priv->driver)) - goto done; + return 0; =20 if (!virCgroupAvailable()) - goto done; + return 0; =20 virCgroupFree(&priv->cgroup); =20 @@ -938,7 +930,7 @@ qemuInitCgroup(virDomainObjPtr vm, virDomainResourceDefPtr res; =20 if (VIR_ALLOC(res) < 0) - goto cleanup; + return ret; =20 res->partition =3D g_strdup("/machine"); =20 @@ -949,7 +941,7 @@ qemuInitCgroup(virDomainObjPtr vm, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Resource partition '%s' must start with '/'"), vm->def->resource->partition); - goto cleanup; + return ret; } =20 if (virCgroupNewMachine(priv->machineName, @@ -964,16 +956,9 @@ qemuInitCgroup(virDomainObjPtr vm, cfg->maxThreadsPerProc, &priv->cgroup) < 0) { if (virCgroupNewIgnoreError()) - goto done; - - goto cleanup; + return 0; } - - done: - ret =3D 0; - cleanup: - virObjectUnref(cfg); - return ret; + return ret; } =20 static void @@ -1058,14 +1043,14 @@ int qemuConnectCgroup(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(priv->driver); + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv->dr= iver); int ret =3D -1; =20 if (!virQEMUDriverIsPrivileged(priv->driver)) - goto done; + return 0; =20 if (!virCgroupAvailable()) - goto done; + return 0; =20 virCgroupFree(&priv->cgroup); =20 @@ -1075,14 +1060,9 @@ qemuConnectCgroup(virDomainObjPtr vm) cfg->cgroupControllers, priv->machineName, &priv->cgroup) < 0) - goto cleanup; + return ret; =20 qemuRestoreCgroupState(vm); - - done: - ret =3D 0; - cleanup: - virObjectUnref(cfg); return ret; } =20 @@ -1269,7 +1249,7 @@ qemuCgroupEmulatorAllNodesAllow(virCgroupPtr cgroup, qemuCgroupEmulatorAllNodesDataPtr *retData) { qemuCgroupEmulatorAllNodesDataPtr data =3D NULL; - char *all_nodes_str =3D NULL; + g_autofree char *all_nodes_str =3D NULL; virBitmapPtr all_nodes =3D NULL; int ret =3D -1; =20 @@ -1298,7 +1278,6 @@ qemuCgroupEmulatorAllNodesAllow(virCgroupPtr cgroup, ret =3D 0; =20 cleanup: - VIR_FREE(all_nodes_str); virBitmapFree(all_nodes); qemuCgroupEmulatorAllNodesDataFree(data); =20 --=20 1.8.3.1