From 25730930b496dd639afe8906744ce9ebeb7db7e9 Mon Sep 17 00:00:00 2001 From: Jeffrey Cody Date: Wed, 5 Aug 2015 14:38:26 +0200 Subject: [PATCH 3/3] block: coverity fix: check return value for fcntl in gluster Message-id: <9a482772dc4e110d2a774bbed0e1dbecdaaec43e.1438784597.git.jcody@redhat.com> Patchwork-id: 67323 O-Subject: [RHEL-7.2 qemu-kvm PATCH v3] block: coverity fix: check return value for fcntl in gluster Bugzilla: 1219217 RH-Acked-by: Max Reitz RH-Acked-by: Fam Zheng RH-Acked-by: Stefan Hajnoczi Check return value in the Gluster driver for fcntl, as pointed out by coverity. Cleanup of s->fds is done inline in the error handling for the fcntl() call, rather than in the function cleanup, to keep changes minimal for future backports. Downstream-only, as upstream Gluster driver does not use fcntl anymore. Signed-off-by: Jeff Cody Signed-off-by: Miroslav Rezanina --- block/gluster.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/block/gluster.c b/block/gluster.c index 5f85799..1793386 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -357,7 +357,13 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict *options, ret = -errno; goto out; } - fcntl(s->fds[GLUSTER_FD_READ], F_SETFL, O_NONBLOCK); + ret = fcntl(s->fds[GLUSTER_FD_READ], F_SETFL, O_NONBLOCK); + if (ret < 0) { + ret = -errno; + close(s->fds[GLUSTER_FD_READ]); + close(s->fds[GLUSTER_FD_WRITE]); + goto out; + } qemu_aio_set_fd_handler(s->fds[GLUSTER_FD_READ], qemu_gluster_aio_event_reader, NULL, qemu_gluster_aio_flush_cb, s); -- 1.8.3.1