mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-23 20:02:21 +00:00
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…
x
Reference in New Issue
Block a user