From e92848ebfd1a68f2afef3db79dd0a40d1a7c256a Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Thu, 28 Oct 2010 11:43:16 -0400 Subject: [PATCH] eliminate possibility of a double-closed file descriptor The 2nd and 3rd hunk show the only double-closed file descriptor code part that I found while trying to clean up close(). The first hunk seems a harmless cleanup in that same file. --- src/storage/storage_backend_logical.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 616ca1ad3e..e6c69385f8 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -37,6 +37,7 @@ #include "util.h" #include "memory.h" #include "logging.h" +#include "files.h" #define VIR_FROM_THIS VIR_FROM_STORAGE @@ -408,10 +409,10 @@ virStorageBackendLogicalBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED, virReportSystemError(errno, _("cannot clear device header of '%s'"), pool->def->source.devices[i].path); - close(fd); + VIR_FORCE_CLOSE(fd); goto cleanup; } - if (close(fd) < 0) { + if (VIR_CLOSE(fd) < 0) { virReportSystemError(errno, _("cannot close device '%s'"), pool->def->source.devices[i].path); @@ -622,7 +623,7 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn, goto cleanup; } - if (close(fd) < 0) { + if (VIR_CLOSE(fd) < 0) { virReportSystemError(errno, _("cannot close file '%s'"), vol->target.path); @@ -641,8 +642,7 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn, return 0; cleanup: - if (fd != -1) - close(fd); + VIR_FORCE_CLOSE(fd); virStorageBackendLogicalDeleteVol(conn, pool, vol, 0); return -1; }