mirror of https://gitee.com/openkylin/libvirt.git
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.
This commit is contained in:
parent
054d43f570
commit
e92848ebfd
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue