summaryrefslogtreecommitdiffstats
path: root/hw/9pfs/xen-9p-backend.c
diff options
context:
space:
mode:
authorStefan Hajnoczi2017-05-17 15:03:32 +0200
committerStefan Hajnoczi2017-05-17 15:03:35 +0200
commit599c9cb641cc484876d5bb92189d09ba27bbfdfd (patch)
tree35f93d7b453a8457c601f2216d030fce86d6ae52 /hw/9pfs/xen-9p-backend.c
parentMerge remote-tracking branch 'jtc/tags/block-pull-request' into staging (diff)
parentxen: call qemu_set_cloexec instead of fcntl (diff)
downloadqemu-599c9cb641cc484876d5bb92189d09ba27bbfdfd.tar.gz
qemu-599c9cb641cc484876d5bb92189d09ba27bbfdfd.tar.xz
qemu-599c9cb641cc484876d5bb92189d09ba27bbfdfd.zip
Merge remote-tracking branch 'sstabellini/tags/xen-20170516-tag' into staging
Xen 2017/05/16 # gpg: Signature made Tue 16 May 2017 08:18:32 PM BST # gpg: using RSA key 0x894F8F4870E1AE90 # gpg: Good signature from "Stefano Stabellini <stefano.stabellini@eu.citrix.com>" # gpg: aka "Stefano Stabellini <sstabellini@kernel.org>" # Primary key fingerprint: D04E 33AB A51F 67BA 07D3 0AEA 894F 8F48 70E1 AE90 * sstabellini/tags/xen-20170516-tag: xen: call qemu_set_cloexec instead of fcntl xen/9pfs: fix two resource leaks on error paths, discovered by Coverity configure: Remove -lxencall for Xen detection xen/mapcache: store dma information in revmapcache entries for debugging Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/9pfs/xen-9p-backend.c')
-rw-r--r--hw/9pfs/xen-9p-backend.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c
index 9c7f41af99..5df97c90fa 100644
--- a/hw/9pfs/xen-9p-backend.c
+++ b/hw/9pfs/xen-9p-backend.c
@@ -332,12 +332,14 @@ static int xen_9pfs_connect(struct XenDevice *xendev)
str = g_strdup_printf("ring-ref%u", i);
if (xenstore_read_fe_int(&xen_9pdev->xendev, str,
&xen_9pdev->rings[i].ref) == -1) {
+ g_free(str);
goto out;
}
g_free(str);
str = g_strdup_printf("event-channel-%u", i);
if (xenstore_read_fe_int(&xen_9pdev->xendev, str,
&xen_9pdev->rings[i].evtchn) == -1) {
+ g_free(str);
goto out;
}
g_free(str);
@@ -378,7 +380,7 @@ static int xen_9pfs_connect(struct XenDevice *xendev)
if (xen_9pdev->rings[i].evtchndev == NULL) {
goto out;
}
- fcntl(xenevtchn_fd(xen_9pdev->rings[i].evtchndev), F_SETFD, FD_CLOEXEC);
+ qemu_set_cloexec(xenevtchn_fd(xen_9pdev->rings[i].evtchndev));
xen_9pdev->rings[i].local_port = xenevtchn_bind_interdomain
(xen_9pdev->rings[i].evtchndev,
xendev->dom,