mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
bye to close(), welcome to VIR_(FORCE_)CLOSE()
Using automated replacement with sed and editing I have now replaced all occurrences of close() with VIR_(FORCE_)CLOSE() except for one, of course. Some replacements were straight forward, others I needed to pay attention. I hope I payed attention in all the right places... Please have a look. This should have at least solved one more double-close error.
This commit is contained in:
parent
4362552dc1
commit
60ae1c34ad
@ -50,6 +50,7 @@
|
||||
|
||||
#include "libvirt_internal.h"
|
||||
#include "virterror_internal.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_QEMU
|
||||
|
||||
@ -425,7 +426,7 @@ static int daemonForkIntoBackground(void) {
|
||||
int stdoutfd = -1;
|
||||
int nextpid;
|
||||
|
||||
close(statuspipe[0]);
|
||||
VIR_FORCE_CLOSE(statuspipe[0]);
|
||||
|
||||
if ((stdinfd = open("/dev/null", O_RDONLY)) < 0)
|
||||
goto cleanup;
|
||||
@ -437,12 +438,10 @@ static int daemonForkIntoBackground(void) {
|
||||
goto cleanup;
|
||||
if (dup2(stdoutfd, STDERR_FILENO) != STDERR_FILENO)
|
||||
goto cleanup;
|
||||
if (close(stdinfd) < 0)
|
||||
if (VIR_CLOSE(stdinfd) < 0)
|
||||
goto cleanup;
|
||||
stdinfd = -1;
|
||||
if (close(stdoutfd) < 0)
|
||||
if (VIR_CLOSE(stdoutfd) < 0)
|
||||
goto cleanup;
|
||||
stdoutfd = -1;
|
||||
|
||||
if (setsid() < 0)
|
||||
goto cleanup;
|
||||
@ -458,10 +457,8 @@ static int daemonForkIntoBackground(void) {
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (stdoutfd != -1)
|
||||
close(stdoutfd);
|
||||
if (stdinfd != -1)
|
||||
close(stdinfd);
|
||||
VIR_FORCE_CLOSE(stdoutfd);
|
||||
VIR_FORCE_CLOSE(stdinfd);
|
||||
return -1;
|
||||
|
||||
}
|
||||
@ -475,7 +472,7 @@ static int daemonForkIntoBackground(void) {
|
||||
int ret;
|
||||
char status;
|
||||
|
||||
close(statuspipe[1]);
|
||||
VIR_FORCE_CLOSE(statuspipe[1]);
|
||||
|
||||
/* We wait to make sure the first child forked successfully */
|
||||
if ((got = waitpid(pid, &exitstatus, 0)) < 0 ||
|
||||
@ -518,7 +515,7 @@ static int qemudWritePidFile(const char *pidFile) {
|
||||
if (!(fh = fdopen(fd, "w"))) {
|
||||
VIR_ERROR(_("Failed to fdopen pid file '%s' : %s"),
|
||||
pidFile, virStrerror(errno, ebuf, sizeof ebuf));
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -610,8 +607,7 @@ static int qemudListenUnix(struct qemud_server *server,
|
||||
return 0;
|
||||
|
||||
cleanup:
|
||||
if (sock->fd >= 0)
|
||||
close(sock->fd);
|
||||
VIR_FORCE_CLOSE(sock->fd);
|
||||
VIR_FREE(sock);
|
||||
return -1;
|
||||
}
|
||||
@ -665,7 +661,7 @@ remoteMakeSockets (int *fds, int max_fds, int *nfds_r, const char *node, const c
|
||||
VIR_ERROR(_("bind: %s"), virStrerror (errno, ebuf, sizeof ebuf));
|
||||
return -1;
|
||||
}
|
||||
close (fds[*nfds_r]);
|
||||
VIR_FORCE_CLOSE(fds[*nfds_r]);
|
||||
} else {
|
||||
++*nfds_r;
|
||||
}
|
||||
@ -734,7 +730,7 @@ remoteListenTCP (struct qemud_server *server,
|
||||
|
||||
cleanup:
|
||||
for (i = 0; i < nfds; ++i)
|
||||
close(fds[i]);
|
||||
VIR_FORCE_CLOSE(fds[i]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1483,7 +1479,7 @@ error:
|
||||
VIR_FREE(client);
|
||||
}
|
||||
VIR_FREE(addrstr);
|
||||
close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
PROBE(CLIENT_DISCONNECT, "fd=%d", fd);
|
||||
return -1;
|
||||
}
|
||||
@ -1529,8 +1525,7 @@ void qemudDispatchClientFailure(struct qemud_client *client) {
|
||||
}
|
||||
if (client->fd != -1) {
|
||||
PROBE(CLIENT_DISCONNECT, "fd=%d", client->fd);
|
||||
close(client->fd);
|
||||
client->fd = -1;
|
||||
VIR_FORCE_CLOSE(client->fd);
|
||||
}
|
||||
VIR_FREE(client->addrstr);
|
||||
}
|
||||
@ -2433,17 +2428,15 @@ static int qemudStartEventLoop(struct qemud_server *server) {
|
||||
static void qemudCleanup(struct qemud_server *server) {
|
||||
struct qemud_socket *sock;
|
||||
|
||||
if (server->sigread != -1)
|
||||
close(server->sigread);
|
||||
if (server->sigwrite != -1)
|
||||
close(server->sigwrite);
|
||||
VIR_FORCE_CLOSE(server->sigread);
|
||||
VIR_FORCE_CLOSE(server->sigwrite);
|
||||
|
||||
sock = server->sockets;
|
||||
while (sock) {
|
||||
struct qemud_socket *next = sock->next;
|
||||
if (sock->watch)
|
||||
virEventRemoveHandleImpl(sock->watch);
|
||||
close(sock->fd);
|
||||
VIR_FORCE_CLOSE(sock->fd);
|
||||
|
||||
/* Unlink unix domain sockets which are not in
|
||||
* the abstract namespace */
|
||||
@ -2999,8 +2992,8 @@ daemonSetupSignals(struct qemud_server *server)
|
||||
return 0;
|
||||
|
||||
error:
|
||||
close(sigpipe[0]);
|
||||
close(sigpipe[1]);
|
||||
VIR_FORCE_CLOSE(sigpipe[0]);
|
||||
VIR_FORCE_CLOSE(sigpipe[1]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3257,8 +3250,7 @@ int main(int argc, char **argv) {
|
||||
while (write(statuswrite, &status, 1) == -1 &&
|
||||
errno == EINTR)
|
||||
;
|
||||
close(statuswrite);
|
||||
statuswrite = -1;
|
||||
VIR_FORCE_CLOSE(statuswrite);
|
||||
}
|
||||
|
||||
/* Start the event loop in a background thread, since
|
||||
@ -3315,7 +3307,7 @@ error:
|
||||
errno == EINTR)
|
||||
;
|
||||
}
|
||||
close(statuswrite);
|
||||
VIR_FORCE_CLOSE(statuswrite);
|
||||
}
|
||||
if (server)
|
||||
qemudCleanup(server);
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include "util.h"
|
||||
#include "memory.h"
|
||||
#include "veth.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||
|
||||
@ -145,8 +146,10 @@ static int lxcContainerSetStdio(int control, int ttyfd)
|
||||
* close all FDs before executing the container */
|
||||
open_max = sysconf (_SC_OPEN_MAX);
|
||||
for (i = 0; i < open_max; i++)
|
||||
if (i != ttyfd && i != control)
|
||||
close(i);
|
||||
if (i != ttyfd && i != control) {
|
||||
int tmpfd = i;
|
||||
VIR_FORCE_CLOSE(tmpfd);
|
||||
}
|
||||
|
||||
if (dup2(ttyfd, 0) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
@ -222,7 +225,7 @@ static int lxcContainerWaitForContinue(int control)
|
||||
_("Failed to read the container continue message"));
|
||||
return -1;
|
||||
}
|
||||
close(control);
|
||||
VIR_FORCE_CLOSE(control);
|
||||
|
||||
DEBUG0("Received container continue message");
|
||||
|
||||
@ -776,10 +779,10 @@ static int lxcContainerChild( void *data )
|
||||
VIR_FREE(ttyPath);
|
||||
|
||||
if (lxcContainerSetStdio(argv->monitor, ttyfd) < 0) {
|
||||
close(ttyfd);
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
return -1;
|
||||
}
|
||||
close(ttyfd);
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
|
||||
if (lxcContainerSetupMounts(vmDef, root) < 0)
|
||||
return -1;
|
||||
|
@ -48,6 +48,7 @@
|
||||
#include "veth.h"
|
||||
#include "memory.h"
|
||||
#include "util.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||
|
||||
@ -233,8 +234,7 @@ static int lxcMonitorServer(const char *sockpath)
|
||||
return fd;
|
||||
|
||||
error:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -409,7 +409,7 @@ static int lxcControllerMain(int monitor,
|
||||
goto cleanup;
|
||||
}
|
||||
if (client != -1) { /* Already connected, so kick new one out */
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
continue;
|
||||
}
|
||||
client = fd;
|
||||
@ -426,8 +426,7 @@ static int lxcControllerMain(int monitor,
|
||||
_("epoll_ctl(client) failed"));
|
||||
goto cleanup;
|
||||
}
|
||||
close(client);
|
||||
client = -1;
|
||||
VIR_FORCE_CLOSE(client);
|
||||
} else {
|
||||
if (epollEvent.events & EPOLLIN) {
|
||||
curFdOff = epollEvent.data.fd == appPty ? 0 : 1;
|
||||
@ -485,9 +484,9 @@ static int lxcControllerMain(int monitor,
|
||||
rc = 0;
|
||||
|
||||
cleanup:
|
||||
close(appPty);
|
||||
close(contPty);
|
||||
close(epollFd);
|
||||
VIR_FORCE_CLOSE(appPty);
|
||||
VIR_FORCE_CLOSE(contPty);
|
||||
VIR_FORCE_CLOSE(epollFd);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -660,8 +659,7 @@ lxcControllerRun(virDomainDefPtr def,
|
||||
control[1],
|
||||
containerPtyPath)) < 0)
|
||||
goto cleanup;
|
||||
close(control[1]);
|
||||
control[1] = -1;
|
||||
VIR_FORCE_CLOSE(control[1]);
|
||||
|
||||
if (lxcControllerMoveInterfaces(nveths, veths, container) < 0)
|
||||
goto cleanup;
|
||||
@ -679,13 +677,10 @@ lxcControllerRun(virDomainDefPtr def,
|
||||
cleanup:
|
||||
VIR_FREE(devptmx);
|
||||
VIR_FREE(devpts);
|
||||
if (control[0] != -1)
|
||||
close(control[0]);
|
||||
if (control[1] != -1)
|
||||
close(control[1]);
|
||||
VIR_FORCE_CLOSE(control[0]);
|
||||
VIR_FORCE_CLOSE(control[1]);
|
||||
VIR_FREE(containerPtyPath);
|
||||
if (containerPty != -1)
|
||||
close(containerPty);
|
||||
VIR_FORCE_CLOSE(containerPty);
|
||||
|
||||
if (container > 1) {
|
||||
int status;
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include "uuid.h"
|
||||
#include "stats_linux.h"
|
||||
#include "hooks.h"
|
||||
#include "files.h"
|
||||
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||
@ -969,7 +970,7 @@ static int lxcVmCleanup(lxc_driver_t *driver,
|
||||
}
|
||||
|
||||
virEventRemoveHandle(priv->monitorWatch);
|
||||
close(priv->monitor);
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
|
||||
virFileDeletePid(driver->stateDir, vm->def->name);
|
||||
virDomainDeleteConfig(driver->stateDir, NULL, vm);
|
||||
@ -1151,8 +1152,7 @@ static int lxcMonitorClient(lxc_driver_t * driver,
|
||||
|
||||
error:
|
||||
VIR_FREE(sockpath);
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1534,19 +1534,18 @@ static int lxcVmStart(virConnectPtr conn,
|
||||
rc = 0;
|
||||
|
||||
cleanup:
|
||||
if (VIR_CLOSE(logfd) < 0) {
|
||||
virReportSystemError(errno, "%s", _("could not close logfile"));
|
||||
rc = -1;
|
||||
}
|
||||
for (i = 0 ; i < nveths ; i++) {
|
||||
if (rc != 0)
|
||||
vethDelete(veths[i]);
|
||||
VIR_FREE(veths[i]);
|
||||
}
|
||||
if (rc != 0 && priv->monitor != -1) {
|
||||
close(priv->monitor);
|
||||
priv->monitor = -1;
|
||||
}
|
||||
if (parentTty != -1)
|
||||
close(parentTty);
|
||||
if (logfd != -1)
|
||||
close(logfd);
|
||||
if (rc != 0)
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
VIR_FORCE_CLOSE(parentTty);
|
||||
VIR_FREE(logfile);
|
||||
return rc;
|
||||
}
|
||||
@ -2006,8 +2005,7 @@ lxcReconnectVM(void *payload, const char *name ATTRIBUTE_UNUSED, void *opaque)
|
||||
|
||||
/* Read pid from controller */
|
||||
if ((virFileReadPid(lxc_driver->stateDir, vm->def->name, &vm->pid)) != 0) {
|
||||
close(priv->monitor);
|
||||
priv->monitor = -1;
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -2037,8 +2035,7 @@ lxcReconnectVM(void *payload, const char *name ATTRIBUTE_UNUSED, void *opaque)
|
||||
}
|
||||
} else {
|
||||
vm->def->id = -1;
|
||||
close(priv->monitor);
|
||||
priv->monitor = -1;
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "virterror_internal.h"
|
||||
#include "memory.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
#include <dirent.h>
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_NODEDEV
|
||||
@ -104,9 +105,7 @@ int read_wwn_linux(int host, const char *file, char **wwn)
|
||||
}
|
||||
|
||||
out:
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "nwfilter_conf.h"
|
||||
#include "nwfilter_gentech_driver.h"
|
||||
#include "nwfilter_ebiptables_driver.h"
|
||||
#include "files.h"
|
||||
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_NWFILTER
|
||||
@ -2493,13 +2494,12 @@ ebiptablesWriteToTempFile(const char *string) {
|
||||
}
|
||||
|
||||
VIR_FREE(header);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return filnam;
|
||||
|
||||
err_exit:
|
||||
VIR_FREE(header);
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
unlink(filename);
|
||||
return NULL;
|
||||
}
|
||||
@ -3259,7 +3259,7 @@ iptablesCheckBridgeNFCallEnabled(bool isIPv6)
|
||||
lastReport = now;
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include "memory.h"
|
||||
#include "util.h"
|
||||
#include "nodeinfo.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_OPENVZ
|
||||
|
||||
@ -109,7 +110,7 @@ openvzExtractVersionInfo(const char *cmd, int *retversion)
|
||||
|
||||
cleanup2:
|
||||
VIR_FREE(help);
|
||||
if (close(newstdout) < 0)
|
||||
if (VIR_CLOSE(newstdout) < 0)
|
||||
ret = -1;
|
||||
|
||||
rewait:
|
||||
@ -569,7 +570,7 @@ openvzWriteConfigParam(const char * conf_file, const char *param, const char *va
|
||||
goto error;
|
||||
temp_fd = open(temp_file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
if (temp_fd == -1) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -590,12 +591,10 @@ openvzWriteConfigParam(const char * conf_file, const char *param, const char *va
|
||||
safewrite(temp_fd, "\"\n", 2) < 0)
|
||||
goto error;
|
||||
|
||||
if (close(fd) < 0)
|
||||
if (VIR_CLOSE(fd) < 0)
|
||||
goto error;
|
||||
fd = -1;
|
||||
if (close(temp_fd) < 0)
|
||||
if (VIR_CLOSE(temp_fd) < 0)
|
||||
goto error;
|
||||
temp_fd = -1;
|
||||
|
||||
if (rename(temp_file, conf_file) < 0)
|
||||
goto error;
|
||||
@ -603,10 +602,8 @@ openvzWriteConfigParam(const char * conf_file, const char *param, const char *va
|
||||
return 0;
|
||||
|
||||
error:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
if (temp_fd != -1)
|
||||
close(temp_fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
VIR_FORCE_CLOSE(temp_fd);
|
||||
if (temp_file)
|
||||
unlink(temp_file);
|
||||
VIR_FREE(temp_file);
|
||||
@ -662,7 +659,7 @@ openvzReadConfigParam(const char * conf_file ,const char * param, char *value, i
|
||||
}
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
if (ret == 0 && found)
|
||||
ret = 1;
|
||||
@ -703,7 +700,7 @@ openvz_copyfile(char* from_path, char* to_path)
|
||||
return -1;
|
||||
copy_fd = open(to_path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
if (copy_fd == -1) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -716,19 +713,16 @@ openvz_copyfile(char* from_path, char* to_path)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (close(fd) < 0)
|
||||
if (VIR_CLOSE(fd) < 0)
|
||||
goto error;
|
||||
fd = -1;
|
||||
if (close(copy_fd) < 0)
|
||||
if (VIR_CLOSE(copy_fd) < 0)
|
||||
goto error;
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
if (copy_fd != -1)
|
||||
close(copy_fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
VIR_FORCE_CLOSE(copy_fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -880,8 +874,7 @@ openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len)
|
||||
}
|
||||
retval = 0;
|
||||
cleanup:
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
VIR_FREE(conf_file);
|
||||
|
||||
return retval;
|
||||
|
@ -57,6 +57,7 @@
|
||||
#include "nodeinfo.h"
|
||||
#include "memory.h"
|
||||
#include "bridge.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_OPENVZ
|
||||
|
||||
@ -1540,7 +1541,7 @@ Version: 2.2
|
||||
}
|
||||
}
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
|
@ -58,6 +58,7 @@
|
||||
#include "domain_conf.h"
|
||||
#include "storage_conf.h"
|
||||
#include "nodeinfo.h"
|
||||
#include "files.h"
|
||||
|
||||
#include "phyp_driver.h"
|
||||
|
||||
@ -457,11 +458,15 @@ phypUUIDTable_WriteFile(virConnectPtr conn)
|
||||
}
|
||||
}
|
||||
|
||||
close(fd);
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno, _("Could not close %s"),
|
||||
local_file);
|
||||
goto err;
|
||||
}
|
||||
return 0;
|
||||
|
||||
err:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -672,11 +677,11 @@ phypUUIDTable_ReadFile(virConnectPtr conn)
|
||||
} else
|
||||
virReportOOMError();
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return 0;
|
||||
|
||||
err:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -764,7 +769,11 @@ phypUUIDTable_Pull(virConnectPtr conn)
|
||||
}
|
||||
break;
|
||||
}
|
||||
close(fd);
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno, _("Could not close %s"),
|
||||
local_file);
|
||||
goto err;
|
||||
}
|
||||
goto exit;
|
||||
|
||||
exit:
|
||||
@ -1001,7 +1010,7 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
|
||||
if (connect(sock, cur->ai_addr, cur->ai_addrlen) == 0) {
|
||||
goto connected;
|
||||
}
|
||||
close(sock);
|
||||
VIR_FORCE_CLOSE(sock);
|
||||
}
|
||||
cur = cur->ai_next;
|
||||
}
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include "macvtap.h"
|
||||
#include "cpu/cpu.h"
|
||||
#include "domain_nwfilter.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_QEMU
|
||||
|
||||
@ -588,7 +589,7 @@ qemudProbeMachineTypes(const char *binary,
|
||||
cleanup2:
|
||||
VIR_FREE(output);
|
||||
cleanup:
|
||||
if (close(newstdout) < 0)
|
||||
if (VIR_CLOSE(newstdout) < 0)
|
||||
ret = -1;
|
||||
|
||||
rewait:
|
||||
@ -838,7 +839,7 @@ qemudProbeCPUModels(const char *qemu,
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(output);
|
||||
if (close(newstdout) < 0)
|
||||
if (VIR_CLOSE(newstdout) < 0)
|
||||
ret = -1;
|
||||
|
||||
rewait:
|
||||
@ -1495,7 +1496,7 @@ static void qemudParsePCIDeviceStrs(const char *qemu, unsigned long long *flags)
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(pciassign);
|
||||
close(newstderr);
|
||||
VIR_FORCE_CLOSE(newstderr);
|
||||
rewait:
|
||||
if (waitpid(child, &status, 0) != child) {
|
||||
if (errno == EINTR)
|
||||
@ -1555,7 +1556,7 @@ int qemudExtractVersionInfo(const char *qemu,
|
||||
|
||||
cleanup2:
|
||||
VIR_FREE(help);
|
||||
if (close(newstdout) < 0)
|
||||
if (VIR_CLOSE(newstdout) < 0)
|
||||
ret = -1;
|
||||
|
||||
rewait:
|
||||
@ -1670,8 +1671,7 @@ qemudPhysIfaceConnect(virConnectPtr conn,
|
||||
if ((net->filter) && (net->ifname)) {
|
||||
err = virDomainConfNWFilterInstantiate(conn, net);
|
||||
if (err) {
|
||||
close(rc);
|
||||
rc = -1;
|
||||
VIR_FORCE_CLOSE(rc);
|
||||
delMacvtap(net->ifname, net->mac, net->data.direct.linkdev,
|
||||
&net->data.direct.virtPortProfile);
|
||||
VIR_FREE(net->ifname);
|
||||
@ -1816,10 +1816,8 @@ qemudNetworkIfaceConnect(virConnectPtr conn,
|
||||
if (tapfd >= 0) {
|
||||
if ((net->filter) && (net->ifname)) {
|
||||
err = virDomainConfNWFilterInstantiate(conn, net);
|
||||
if (err) {
|
||||
close(tapfd);
|
||||
tapfd = -1;
|
||||
}
|
||||
if (err)
|
||||
VIR_FORCE_CLOSE(tapfd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4782,7 +4780,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
|
||||
if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) {
|
||||
virDomainConfNWFilterTeardown(net);
|
||||
close(tapfd);
|
||||
VIR_FORCE_CLOSE(tapfd);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
@ -4801,7 +4799,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
|
||||
if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) {
|
||||
virDomainConfNWFilterTeardown(net);
|
||||
close(tapfd);
|
||||
VIR_FORCE_CLOSE(tapfd);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
@ -4821,7 +4819,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
int vhostfd = qemudOpenVhostNet(net, qemuCmdFlags);
|
||||
if (vhostfd >= 0) {
|
||||
if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) {
|
||||
close(vhostfd);
|
||||
VIR_FORCE_CLOSE(vhostfd);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
@ -5410,14 +5408,14 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
|
||||
if (configfd >= 0) {
|
||||
if (virAsprintf(&configfd_name, "%d", configfd) < 0) {
|
||||
close(configfd);
|
||||
VIR_FORCE_CLOSE(configfd);
|
||||
virReportOOMError();
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) {
|
||||
VIR_FREE(configfd_name);
|
||||
close(configfd);
|
||||
VIR_FORCE_CLOSE(configfd);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
@ -5510,7 +5508,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
if (vmfds &&
|
||||
*vmfds) {
|
||||
for (i = 0; i < *nvmfds; i++)
|
||||
close((*vmfds)[i]);
|
||||
VIR_FORCE_CLOSE((*vmfds)[i]);
|
||||
VIR_FREE(*vmfds);
|
||||
*nvmfds = 0;
|
||||
}
|
||||
|
@ -82,6 +82,7 @@
|
||||
#include "hooks.h"
|
||||
#include "storage_file.h"
|
||||
#include "virtaudit.h"
|
||||
#include "files.h"
|
||||
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_QEMU
|
||||
@ -768,7 +769,7 @@ qemudLogFD(struct qemud_driver *driver, const char* name)
|
||||
if (virSetCloseExec(fd) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Unable to set VM logfile close-on-exec flag"));
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
return fd;
|
||||
@ -800,14 +801,14 @@ qemudLogReadFD(const char* logDir, const char* name, off_t pos)
|
||||
if (virSetCloseExec(fd) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Unable to set VM logfile close-on-exec flag"));
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
if (pos < 0 || lseek(fd, pos, SEEK_SET) < 0) {
|
||||
virReportSystemError(pos < 0 ? 0 : errno,
|
||||
virReportSystemError(pos < 0 ? 0 : errno,
|
||||
_("Unable to seek to %lld in %s"),
|
||||
(long long) pos, logfile);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
}
|
||||
return fd;
|
||||
}
|
||||
@ -2401,7 +2402,7 @@ cleanup:
|
||||
}
|
||||
|
||||
closelog:
|
||||
if (close(logfd) < 0) {
|
||||
if (VIR_CLOSE(logfd) < 0) {
|
||||
char ebuf[4096];
|
||||
VIR_WARN("Unable to close logfile: %s",
|
||||
virStrerror(errno, ebuf, sizeof ebuf));
|
||||
@ -2982,13 +2983,13 @@ static int qemudNextFreePort(struct qemud_driver *driver,
|
||||
return -1;
|
||||
|
||||
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void*)&reuse, sizeof(reuse)) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
break;
|
||||
}
|
||||
|
||||
if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) == 0) {
|
||||
/* Not in use, lets grab it */
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
/* Add port to bitmap of reserved ports */
|
||||
if (virBitmapSetBit(driver->reservedVNCPorts,
|
||||
i - QEMU_VNC_PORT_MIN) < 0) {
|
||||
@ -2997,7 +2998,7 @@ static int qemudNextFreePort(struct qemud_driver *driver,
|
||||
}
|
||||
return i;
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
if (errno == EADDRINUSE) {
|
||||
/* In use, try next */
|
||||
@ -3249,7 +3250,7 @@ qemuPrepareChardevDevice(virDomainDefPtr def ATTRIBUTE_UNUSED,
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -4163,7 +4164,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
|
||||
if (vmfds) {
|
||||
for (i = 0 ; i < nvmfds ; i++) {
|
||||
close(vmfds[i]);
|
||||
VIR_FORCE_CLOSE(vmfds[i]);
|
||||
}
|
||||
VIR_FREE(vmfds);
|
||||
}
|
||||
@ -4216,8 +4217,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (logfile != -1)
|
||||
close(logfile);
|
||||
VIR_FORCE_CLOSE(logfile);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -4227,8 +4227,7 @@ cleanup:
|
||||
* pretend we never started it */
|
||||
qemudShutdownVMDaemon(driver, vm, 0);
|
||||
|
||||
if (logfile != -1)
|
||||
close(logfile);
|
||||
VIR_FORCE_CLOSE(logfile);
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -4503,7 +4502,7 @@ static int kvmGetMaxVCPUs(void) {
|
||||
if (r > 0)
|
||||
maxvcpus = r;
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return maxvcpus;
|
||||
}
|
||||
|
||||
@ -5608,10 +5607,10 @@ static int qemudDomainSaveFlag(struct qemud_driver *driver, virDomainPtr dom,
|
||||
goto endjob;
|
||||
}
|
||||
if (qemudDomainSaveFileOpHook(fd, &hdata) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
goto endjob;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno, _("unable to close %s"), path);
|
||||
goto endjob;
|
||||
}
|
||||
@ -6047,7 +6046,7 @@ static int qemudDomainCoreDump(virDomainPtr dom,
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno,
|
||||
_("unable to save file %s"),
|
||||
path);
|
||||
@ -6692,8 +6691,7 @@ static int qemudOpenAsUID(const char *path, uid_t uid, pid_t *child_pid) {
|
||||
/* parent */
|
||||
|
||||
/* parent doesn't need the write side of the pipe */
|
||||
close(pipefd[1]);
|
||||
pipefd[1] = -1;
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
|
||||
if (forkRet < 0) {
|
||||
virReportSystemError(errno,
|
||||
@ -6705,10 +6703,8 @@ static int qemudOpenAsUID(const char *path, uid_t uid, pid_t *child_pid) {
|
||||
fd = pipefd[0];
|
||||
pipefd[0] = -1;
|
||||
parent_cleanup:
|
||||
if (pipefd[0] != -1)
|
||||
close(pipefd[0]);
|
||||
if (pipefd[1] != -1)
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(pipefd[0]);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
if ((fd < 0) && (*child_pid > 0)) {
|
||||
/* a child process was started and subsequently an error
|
||||
occurred in the parent, so we need to wait for it to
|
||||
@ -6734,7 +6730,7 @@ parent_cleanup:
|
||||
struct passwd pwd, *pwd_result;
|
||||
|
||||
/* child doesn't need the read side of the pipe */
|
||||
close(pipefd[0]);
|
||||
VIR_FORCE_CLOSE(pipefd[0]);
|
||||
|
||||
if (forkRet < 0) {
|
||||
exit_code = errno;
|
||||
@ -6799,10 +6795,8 @@ parent_cleanup:
|
||||
|
||||
child_cleanup:
|
||||
VIR_FREE(buf);
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
if (pipefd[1] != -1)
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
_exit(exit_code);
|
||||
}
|
||||
|
||||
@ -6810,8 +6804,10 @@ static int qemudDomainSaveImageClose(int fd, pid_t read_pid, int *status)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("cannot close file"));
|
||||
}
|
||||
|
||||
if (read_pid != -1) {
|
||||
/* reap the process that read the file */
|
||||
@ -6967,8 +6963,7 @@ qemudDomainSaveImageStartVM(virConnectPtr conn,
|
||||
/* empty */
|
||||
}
|
||||
}
|
||||
if (intermediatefd != -1)
|
||||
close(intermediatefd);
|
||||
VIR_FORCE_CLOSE(intermediatefd);
|
||||
|
||||
wait_ret = qemudDomainSaveImageClose(fd, read_pid, &status);
|
||||
fd = -1;
|
||||
@ -8347,9 +8342,7 @@ static int qemudDomainAttachNetDevice(virConnectPtr conn,
|
||||
}
|
||||
qemuDomainObjExitMonitorWithDriver(driver, vm);
|
||||
|
||||
if (tapfd != -1)
|
||||
close(tapfd);
|
||||
tapfd = -1;
|
||||
VIR_FORCE_CLOSE(tapfd);
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
@ -8403,8 +8396,7 @@ cleanup:
|
||||
VIR_FREE(nicstr);
|
||||
VIR_FREE(netstr);
|
||||
VIR_FREE(tapfd_name);
|
||||
if (tapfd != -1)
|
||||
close(tapfd);
|
||||
VIR_FORCE_CLOSE(tapfd);
|
||||
|
||||
return ret;
|
||||
|
||||
@ -8533,8 +8525,7 @@ static int qemudDomainAttachHostPciDevice(struct qemud_driver *driver,
|
||||
|
||||
VIR_FREE(devstr);
|
||||
VIR_FREE(configfd_name);
|
||||
if (configfd >= 0)
|
||||
close(configfd);
|
||||
VIR_FORCE_CLOSE(configfd);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -8548,8 +8539,7 @@ error:
|
||||
|
||||
VIR_FREE(devstr);
|
||||
VIR_FREE(configfd_name);
|
||||
if (configfd >= 0)
|
||||
close(configfd);
|
||||
VIR_FORCE_CLOSE(configfd);
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -10430,8 +10420,7 @@ qemudDomainBlockPeek (virDomainPtr dom,
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (fd >= 0)
|
||||
close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (vm)
|
||||
virDomainObjUnlock(vm);
|
||||
return ret;
|
||||
@ -10518,7 +10507,7 @@ endjob:
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(tmp);
|
||||
if (fd >= 0) close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
unlink (tmp);
|
||||
if (vm)
|
||||
virDomainObjUnlock(vm);
|
||||
@ -10674,8 +10663,7 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom,
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (vm)
|
||||
virDomainObjUnlock(vm);
|
||||
return ret;
|
||||
@ -10990,8 +10978,7 @@ cleanup:
|
||||
|
||||
static void qemuStreamMigFree(struct qemuStreamMigFile *qemust)
|
||||
{
|
||||
if (qemust->fd != -1)
|
||||
close(qemust->fd);
|
||||
VIR_FORCE_CLOSE(qemust->fd);
|
||||
VIR_FREE(qemust);
|
||||
}
|
||||
|
||||
@ -11832,10 +11819,8 @@ finish:
|
||||
qemuDomainObjExitRemoteWithDriver(driver, vm);
|
||||
|
||||
cleanup:
|
||||
if (client_sock != -1)
|
||||
close(client_sock);
|
||||
if (qemu_sock != -1)
|
||||
close(qemu_sock);
|
||||
VIR_FORCE_CLOSE(client_sock);
|
||||
VIR_FORCE_CLOSE(qemu_sock);
|
||||
|
||||
if (ddomain)
|
||||
virUnrefDomain(ddomain);
|
||||
@ -12616,8 +12601,7 @@ cleanup:
|
||||
VIR_FREE(snapFile);
|
||||
VIR_FREE(snapDir);
|
||||
VIR_FREE(newxml);
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "virterror_internal.h"
|
||||
#include "memory.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_QEMU
|
||||
|
||||
@ -283,7 +284,7 @@ qemuMonitorOpenUnix(const char *monitor)
|
||||
return monfd;
|
||||
|
||||
error:
|
||||
close(monfd);
|
||||
VIR_FORCE_CLOSE(monfd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,7 @@
|
||||
#include "util.h"
|
||||
#include "event.h"
|
||||
#include "ignore-value.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_REMOTE
|
||||
|
||||
@ -621,7 +622,7 @@ doRemoteOpen (virConnectPtr conn,
|
||||
|
||||
if (connect (priv->sock, r->ai_addr, r->ai_addrlen) == -1) {
|
||||
saved_errno = errno;
|
||||
close (priv->sock);
|
||||
VIR_FORCE_CLOSE(priv->sock);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -630,8 +631,7 @@ doRemoteOpen (virConnectPtr conn,
|
||||
negotiate_gnutls_on_connection
|
||||
(conn, priv, no_verify);
|
||||
if (!priv->session) {
|
||||
close (priv->sock);
|
||||
priv->sock = -1;
|
||||
VIR_FORCE_CLOSE(priv->sock);
|
||||
goto failed;
|
||||
}
|
||||
}
|
||||
@ -711,8 +711,7 @@ doRemoteOpen (virConnectPtr conn,
|
||||
if (errno == ECONNREFUSED &&
|
||||
flags & VIR_DRV_OPEN_REMOTE_AUTOSTART &&
|
||||
trials < 20) {
|
||||
close(priv->sock);
|
||||
priv->sock = -1;
|
||||
VIR_FORCE_CLOSE(priv->sock);
|
||||
if (trials > 0 ||
|
||||
remoteForkDaemon() == 0) {
|
||||
trials++;
|
||||
@ -806,8 +805,8 @@ doRemoteOpen (virConnectPtr conn,
|
||||
goto failed;
|
||||
|
||||
/* Parent continues here. */
|
||||
close (sv[1]);
|
||||
close (errfd[1]);
|
||||
VIR_FORCE_CLOSE(sv[1]);
|
||||
VIR_FORCE_CLOSE(errfd[1]);
|
||||
priv->sock = sv[0];
|
||||
priv->errfd = errfd[0];
|
||||
priv->pid = pid;
|
||||
@ -955,15 +954,14 @@ doRemoteOpen (virConnectPtr conn,
|
||||
|
||||
failed:
|
||||
/* Close the socket if we failed. */
|
||||
if (priv->errfd >= 0)
|
||||
close(priv->errfd);
|
||||
VIR_FORCE_CLOSE(priv->errfd);
|
||||
|
||||
if (priv->sock >= 0) {
|
||||
if (priv->uses_tls && priv->session) {
|
||||
gnutls_bye (priv->session, GNUTLS_SHUT_RDWR);
|
||||
gnutls_deinit (priv->session);
|
||||
}
|
||||
close (priv->sock);
|
||||
VIR_FORCE_CLOSE(priv->sock);
|
||||
#ifndef WIN32
|
||||
if (priv->pid > 0) {
|
||||
pid_t reap;
|
||||
@ -977,10 +975,8 @@ retry:
|
||||
#endif
|
||||
}
|
||||
|
||||
if (wakeupFD[0] >= 0) {
|
||||
close(wakeupFD[0]);
|
||||
close(wakeupFD[1]);
|
||||
}
|
||||
VIR_FORCE_CLOSE(wakeupFD[0]);
|
||||
VIR_FORCE_CLOSE(wakeupFD[1]);
|
||||
|
||||
VIR_FREE(priv->hostname);
|
||||
goto cleanup;
|
||||
@ -1442,8 +1438,8 @@ doRemoteClose (virConnectPtr conn, struct private_data *priv)
|
||||
if (priv->saslconn)
|
||||
sasl_dispose (&priv->saslconn);
|
||||
#endif
|
||||
close (priv->sock);
|
||||
close (priv->errfd);
|
||||
VIR_FORCE_CLOSE(priv->sock);
|
||||
VIR_FORCE_CLOSE(priv->errfd);
|
||||
|
||||
#ifndef WIN32
|
||||
if (priv->pid > 0) {
|
||||
@ -1456,10 +1452,8 @@ retry:
|
||||
} while (reap != -1 && reap != priv->pid);
|
||||
}
|
||||
#endif
|
||||
if (priv->wakeupReadFD >= 0) {
|
||||
close(priv->wakeupReadFD);
|
||||
close(priv->wakeupSendFD);
|
||||
}
|
||||
VIR_FORCE_CLOSE(priv->wakeupReadFD);
|
||||
VIR_FORCE_CLOSE(priv->wakeupSendFD);
|
||||
|
||||
|
||||
/* Free hostname copy */
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "util.h"
|
||||
#include "uuid.h"
|
||||
#include "virterror_internal.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_SECRET
|
||||
|
||||
@ -181,7 +182,7 @@ replaceFile(const char *filename, void *data, size_t size)
|
||||
tmp_path);
|
||||
goto cleanup;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno, _("error closing '%s'"), tmp_path);
|
||||
goto cleanup;
|
||||
}
|
||||
@ -196,8 +197,7 @@ replaceFile(const char *filename, void *data, size_t size)
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (tmp_path != NULL) {
|
||||
unlink(tmp_path);
|
||||
VIR_FREE(tmp_path);
|
||||
@ -394,8 +394,7 @@ secretLoadValue(virSecretDriverStatePtr driver,
|
||||
virReportSystemError(errno, _("cannot read '%s'"), filename);
|
||||
goto cleanup;
|
||||
}
|
||||
close(fd);
|
||||
fd = -1;
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
if (!base64_decode_alloc(contents, st.st_size, &value, &value_size)) {
|
||||
virSecretReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
@ -422,8 +421,7 @@ cleanup:
|
||||
memset(contents, 0, st.st_size);
|
||||
VIR_FREE(contents);
|
||||
}
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
VIR_FREE(filename);
|
||||
return ret;
|
||||
}
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "uuid.h"
|
||||
#include "pci.h"
|
||||
#include "hostusb.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_SECURITY
|
||||
#define SECURITY_APPARMOR_VOID_DOI "0"
|
||||
@ -215,7 +216,7 @@ load_profile(virSecurityDriverPtr drv,
|
||||
virReportSystemError(errno, "%s", _("unable to write to pipe"));
|
||||
goto clean;
|
||||
}
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
rc = 0;
|
||||
|
||||
rewait:
|
||||
@ -233,10 +234,8 @@ load_profile(virSecurityDriverPtr drv,
|
||||
clean:
|
||||
VIR_FREE(xml);
|
||||
|
||||
if (pipefd[0] > 0)
|
||||
close(pipefd[0]);
|
||||
if (pipefd[1] > 0)
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(pipefd[0]);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "pci.h"
|
||||
#include "hostusb.h"
|
||||
#include "storage_file.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_SECURITY
|
||||
|
||||
@ -120,10 +121,10 @@ SELinuxInitialize(void)
|
||||
virReportSystemError(errno,
|
||||
_("cannot read SELinux virtual domain context file %s"),
|
||||
selinux_virtual_domain_context_path());
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
ptr = strchrnul(default_domain_context, '\n');
|
||||
*ptr = '\0';
|
||||
@ -139,10 +140,10 @@ SELinuxInitialize(void)
|
||||
virReportSystemError(errno,
|
||||
_("cannot read SELinux virtual image context file %s"),
|
||||
selinux_virtual_image_context_path());
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
ptr = strchrnul(default_image_context, '\n');
|
||||
if (*ptr == '\n') {
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "uuid.h"
|
||||
#include "hostusb.h"
|
||||
#include "pci.h"
|
||||
#include "files.h"
|
||||
|
||||
static char *progname;
|
||||
|
||||
@ -278,12 +279,12 @@ update_include_file(const char *include_file, const char *included_files,
|
||||
}
|
||||
|
||||
if (safewrite(fd, pcontent, plen) < 0) { /* don't write the '\0' */
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
vah_error(NULL, 0, "failed to write to profile");
|
||||
goto clean;
|
||||
}
|
||||
|
||||
if (close(fd) != 0) {
|
||||
if (VIR_CLOSE(fd) != 0) {
|
||||
vah_error(NULL, 0, "failed to close or write to profile");
|
||||
goto clean;
|
||||
}
|
||||
@ -385,12 +386,12 @@ create_profile(const char *profile, const char *profile_name,
|
||||
}
|
||||
|
||||
if (safewrite(fd, pcontent, plen - 1) < 0) { /* don't write the '\0' */
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
vah_error(NULL, 0, "failed to write to profile");
|
||||
goto clean_all;
|
||||
}
|
||||
|
||||
if (close(fd) != 0) {
|
||||
if (VIR_CLOSE(fd) != 0) {
|
||||
vah_error(NULL, 0, "failed to close or write to profile");
|
||||
goto clean_all;
|
||||
}
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include "storage_file.h"
|
||||
#include "storage_backend.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#if WITH_STORAGE_LVM
|
||||
# include "storage_backend_logical.h"
|
||||
@ -181,7 +182,7 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol,
|
||||
} while ((amtleft -= 512) > 0);
|
||||
}
|
||||
|
||||
if (inputfd != -1 && close(inputfd) < 0) {
|
||||
if (VIR_CLOSE(inputfd) < 0) {
|
||||
ret = -errno;
|
||||
virReportSystemError(errno,
|
||||
_("cannot close file '%s'"),
|
||||
@ -193,8 +194,7 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol,
|
||||
*total -= remain;
|
||||
|
||||
cleanup:
|
||||
if (inputfd != -1)
|
||||
close(inputfd);
|
||||
VIR_FORCE_CLOSE(inputfd);
|
||||
|
||||
VIR_FREE(buf);
|
||||
|
||||
@ -251,7 +251,7 @@ virStorageBackendCreateBlockFrom(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
vol->target.path, vol->target.perms.mode);
|
||||
goto cleanup;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno,
|
||||
_("cannot close file '%s'"),
|
||||
vol->target.path);
|
||||
@ -261,8 +261,7 @@ virStorageBackendCreateBlockFrom(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -608,7 +607,7 @@ static int virStorageBackendQEMUImgBackingFormat(const char *qemuimg)
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(help);
|
||||
close(newstdout);
|
||||
VIR_FORCE_CLOSE(newstdout);
|
||||
rewait:
|
||||
if (child) {
|
||||
if (waitpid(child, &status, 0) != child) {
|
||||
@ -997,7 +996,7 @@ virStorageBackendVolOpenCheckMode(const char *path, unsigned int flags)
|
||||
virReportSystemError(errno,
|
||||
_("cannot stat file '%s'"),
|
||||
path);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1009,7 +1008,7 @@ virStorageBackendVolOpenCheckMode(const char *path, unsigned int flags)
|
||||
mode = VIR_STORAGE_VOL_OPEN_BLOCK;
|
||||
|
||||
if (!(mode & flags)) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
if (mode & VIR_STORAGE_VOL_OPEN_ERROR) {
|
||||
virStorageReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
@ -1045,7 +1044,7 @@ virStorageBackendUpdateVolTargetInfo(virStorageVolTargetPtr target,
|
||||
allocation,
|
||||
capacity);
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1461,10 +1460,8 @@ virStorageBackendRunProgRegex(virStoragePoolObjPtr pool,
|
||||
|
||||
if (list)
|
||||
fclose(list);
|
||||
else {
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
}
|
||||
else
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
while ((err = waitpid(child, &exitstatus, 0) == -1) && errno == EINTR);
|
||||
|
||||
@ -1579,7 +1576,7 @@ virStorageBackendRunProgNul(virStoragePoolObjPtr pool,
|
||||
if (fp)
|
||||
fclose (fp);
|
||||
else
|
||||
close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
while ((w_err = waitpid (child, &exitstatus, 0) == -1) && errno == EINTR)
|
||||
/* empty */ ;
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include "util.h"
|
||||
#include "memory.h"
|
||||
#include "xml.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -72,25 +73,25 @@ virStorageBackendProbeTarget(virStorageVolTargetPtr target,
|
||||
if ((ret = virStorageBackendUpdateVolTargetInfoFD(target, fd,
|
||||
allocation,
|
||||
capacity)) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
memset(&meta, 0, sizeof(meta));
|
||||
|
||||
if ((target->format = virStorageFileProbeFormatFromFD(target->path, fd)) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (virStorageFileGetMetadataFromFD(target->path, fd,
|
||||
target->format,
|
||||
&meta) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
if (meta.backingStore) {
|
||||
*backingStore = meta.backingStore;
|
||||
@ -98,7 +99,7 @@ virStorageBackendProbeTarget(virStorageVolTargetPtr target,
|
||||
if (meta.backingStoreFormat == VIR_STORAGE_FILE_AUTO) {
|
||||
if ((*backingStoreFormat
|
||||
= virStorageFileProbeFormat(*backingStore)) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "util.h"
|
||||
#include "memory.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -237,9 +238,7 @@ out:
|
||||
if (fp != NULL) {
|
||||
fclose(fp);
|
||||
} else {
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "storage_backend.h"
|
||||
#include "memory.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -61,9 +62,7 @@ virStorageBackendMpathUpdateVolTargetInfo(virStorageVolTargetPtr target,
|
||||
|
||||
ret = 0;
|
||||
out:
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "storage_backend_scsi.h"
|
||||
#include "memory.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -154,8 +155,7 @@ virStorageBackendSCSIUpdateVolTargetInfo(virStorageVolTargetPtr target,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -572,14 +572,14 @@ virStorageBackendSCSITriggerRescan(uint32_t host)
|
||||
if (safewrite(fd,
|
||||
LINUX_SYSFS_SCSI_HOST_SCAN_STRING,
|
||||
sizeof(LINUX_SYSFS_SCSI_HOST_SCAN_STRING)) < 0) {
|
||||
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
virReportSystemError(errno,
|
||||
_("Write to '%s' to trigger host scan failed"),
|
||||
path);
|
||||
retval = -1;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
free_path:
|
||||
VIR_FREE(path);
|
||||
out:
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include "memory.h"
|
||||
#include "storage_backend.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -1664,9 +1665,7 @@ storageVolumeWipeInternal(virStorageVolDefPtr def)
|
||||
out:
|
||||
VIR_FREE(writebuf);
|
||||
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include "xml.h"
|
||||
#include "threads.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_TEST
|
||||
|
||||
@ -788,8 +789,7 @@ static int testOpenFromFile(virConnectPtr conn,
|
||||
_("Invalid XML in file '%s'"), file);
|
||||
goto error;
|
||||
}
|
||||
close(fd);
|
||||
fd = -1;
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
root = xmlDocGetRootElement(xml);
|
||||
if ((root == NULL) || (!xmlStrEqual(root->name, BAD_CAST "node"))) {
|
||||
@ -1101,8 +1101,7 @@ static int testOpenFromFile(virConnectPtr conn,
|
||||
VIR_FREE(networks);
|
||||
VIR_FREE(ifaces);
|
||||
VIR_FREE(pools);
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
virDomainObjListDeinit(&privconn->domains);
|
||||
virNetworkObjListFree(&privconn->networks);
|
||||
virInterfaceObjListFree(&privconn->ifaces);
|
||||
@ -1752,7 +1751,7 @@ static int testDomainSave(virDomainPtr domain,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno,
|
||||
_("saving domain '%s' to '%s': write failed"),
|
||||
domain->name, path);
|
||||
@ -1779,8 +1778,7 @@ cleanup:
|
||||
* in either case we're already in a failure scenario
|
||||
* and have reported a earlier error */
|
||||
if (ret != 0) {
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
unlink(path);
|
||||
}
|
||||
if (privdom)
|
||||
@ -1870,8 +1868,7 @@ static int testDomainRestore(virConnectPtr conn,
|
||||
cleanup:
|
||||
virDomainDefFree(def);
|
||||
VIR_FREE(xml);
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (dom)
|
||||
virDomainObjUnlock(dom);
|
||||
if (event)
|
||||
@ -1911,7 +1908,7 @@ static int testDomainCoreDump(virDomainPtr domain,
|
||||
domain->name, to);
|
||||
goto cleanup;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
virReportSystemError(errno,
|
||||
_("domain '%s' coredump: write failed: %s"),
|
||||
domain->name, to);
|
||||
@ -1932,8 +1929,7 @@ static int testDomainCoreDump(virDomainPtr domain,
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (privdom)
|
||||
virDomainObjUnlock(privdom);
|
||||
if (event)
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include "bridge.h"
|
||||
#include "logging.h"
|
||||
#include "domain_nwfilter.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_UML
|
||||
|
||||
@ -367,7 +368,7 @@ umlBuildCommandLineChr(virDomainChrDefPtr def,
|
||||
}
|
||||
if (virAsprintf(&ret, "%s%d=null,fd:%d", dev, def->target.port, fd_out) < 0) {
|
||||
virReportOOMError();
|
||||
close(fd_out);
|
||||
VIR_FORCE_CLOSE(fd_out);
|
||||
return NULL;
|
||||
}
|
||||
FD_SET(fd_out, keepfd);
|
||||
|
@ -59,6 +59,7 @@
|
||||
#include "datatypes.h"
|
||||
#include "logging.h"
|
||||
#include "domain_nwfilter.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_UML
|
||||
|
||||
@ -533,7 +534,7 @@ umlShutdown(void) {
|
||||
umlDriverLock(uml_driver);
|
||||
if (uml_driver->inotifyWatch != -1)
|
||||
virEventRemoveHandle(uml_driver->inotifyWatch);
|
||||
close(uml_driver->inotifyFD);
|
||||
VIR_FORCE_CLOSE(uml_driver->inotifyFD);
|
||||
virCapabilitiesFree(uml_driver->caps);
|
||||
|
||||
/* shutdown active VMs
|
||||
@ -659,8 +660,7 @@ restat:
|
||||
if (bind(priv->monitor, (struct sockaddr *)&addr, sizeof addr) < 0) {
|
||||
virReportSystemError(errno,
|
||||
"%s", _("cannot bind socket"));
|
||||
close(priv->monitor);
|
||||
priv->monitor = -1;
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -870,13 +870,13 @@ static int umlStartVMDaemon(virConnectPtr conn,
|
||||
if (umlSetCloseExec(logfd) < 0) {
|
||||
virReportSystemError(errno,
|
||||
"%s", _("Unable to set VM logfile close-on-exec flag"));
|
||||
close(logfd);
|
||||
VIR_FORCE_CLOSE(logfd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (umlBuildCommandLine(conn, driver, vm, &keepfd,
|
||||
&argv, &progenv) < 0) {
|
||||
close(logfd);
|
||||
VIR_FORCE_CLOSE(logfd);
|
||||
virDomainConfVMNWFilterTeardown(vm);
|
||||
umlCleanupTapDevices(conn, vm);
|
||||
return -1;
|
||||
@ -912,15 +912,17 @@ static int umlStartVMDaemon(virConnectPtr conn,
|
||||
-1, &logfd, &logfd,
|
||||
VIR_EXEC_CLEAR_CAPS,
|
||||
NULL, NULL, NULL);
|
||||
close(logfd);
|
||||
VIR_FORCE_CLOSE(logfd);
|
||||
|
||||
/*
|
||||
* At the moment, the only thing that populates keepfd is
|
||||
* umlBuildCommandLineChr. We want to close every fd it opens.
|
||||
*/
|
||||
for (i = 0; i < FD_SETSIZE; i++)
|
||||
if (FD_ISSET(i, &keepfd))
|
||||
close(i);
|
||||
if (FD_ISSET(i, &keepfd)) {
|
||||
int tmpfd = i;
|
||||
VIR_FORCE_CLOSE(tmpfd);
|
||||
}
|
||||
|
||||
for (i = 0 ; argv[i] ; i++)
|
||||
VIR_FREE(argv[i]);
|
||||
@ -957,9 +959,7 @@ static void umlShutdownVMDaemon(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
|
||||
virKillProcess(vm->pid, SIGTERM);
|
||||
|
||||
if (priv->monitor != -1)
|
||||
close(priv->monitor);
|
||||
priv->monitor = -1;
|
||||
VIR_FORCE_CLOSE(priv->monitor);
|
||||
|
||||
if ((ret = waitpid(vm->pid, NULL, 0)) != vm->pid) {
|
||||
VIR_WARN("Got unexpected pid %d != %d",
|
||||
@ -2088,7 +2088,7 @@ umlDomainBlockPeek (virDomainPtr dom,
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (fd >= 0) close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (vm)
|
||||
virDomainObjUnlock(vm);
|
||||
return ret;
|
||||
|
@ -24,6 +24,7 @@
|
||||
#if defined(WITH_BRIDGE)
|
||||
|
||||
# include "bridge.h"
|
||||
# include "files.h"
|
||||
|
||||
# include <stdlib.h>
|
||||
# include <stdio.h>
|
||||
@ -82,12 +83,12 @@ brInit(brControl **ctlp)
|
||||
if ((flags = fcntl(fd, F_GETFD)) < 0 ||
|
||||
fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) {
|
||||
int err = errno;
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return err;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC(*ctlp) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
@ -108,8 +109,7 @@ brShutdown(brControl *ctl)
|
||||
if (!ctl)
|
||||
return;
|
||||
|
||||
close(ctl->fd);
|
||||
ctl->fd = 0;
|
||||
VIR_FORCE_CLOSE(ctl->fd);
|
||||
|
||||
VIR_FREE(ctl);
|
||||
}
|
||||
@ -540,11 +540,11 @@ brAddTap(brControl *ctl,
|
||||
if (tapfd)
|
||||
*tapfd = fd;
|
||||
else
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return 0;
|
||||
|
||||
error:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return errno;
|
||||
}
|
||||
@ -575,7 +575,7 @@ int brDeleteTap(brControl *ctl,
|
||||
}
|
||||
|
||||
error:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "util.h"
|
||||
#include "c-ctype.h"
|
||||
#include "memory.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_CONF
|
||||
|
||||
@ -954,7 +955,7 @@ virConfWriteFile(const char *filename, virConfPtr conf)
|
||||
content = virBufferContentAndReset(&buf);
|
||||
ret = safewrite(fd, content, use);
|
||||
VIR_FREE(content);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (ret != (int)use) {
|
||||
virConfError(NULL, VIR_ERR_WRITE_FAILED, _("failed to save content"));
|
||||
return -1;
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "conf/domain_conf.h"
|
||||
#include "logging.h"
|
||||
#include "memory.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_HOOK
|
||||
|
||||
@ -368,11 +369,10 @@ virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
|
||||
}
|
||||
ret = virExec(argv, env, NULL, &pid, pipefd[0], &outfd, &errfd,
|
||||
VIR_EXEC_NONE | VIR_EXEC_NONBLOCK);
|
||||
if (close(pipefd[1]) < 0) {
|
||||
if (VIR_CLOSE(pipefd[1]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("unable to close pipe for hook input"));
|
||||
}
|
||||
pipefd[1] = -1;
|
||||
} else {
|
||||
ret = virExec(argv, env, NULL, &pid, -1, &outfd, &errfd,
|
||||
VIR_EXEC_NONE | VIR_EXEC_NONBLOCK);
|
||||
@ -418,17 +418,15 @@ virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (pipefd[0] >= 0) {
|
||||
if (close(pipefd[0]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("unable to close pipe for hook input"));
|
||||
}
|
||||
if (VIR_CLOSE(pipefd[0]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("unable to close pipe for hook input"));
|
||||
ret = 1;
|
||||
}
|
||||
if (pipefd[1] >= 0) {
|
||||
if (close(pipefd[1]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("unable to close pipe for hook input"));
|
||||
}
|
||||
if (VIR_CLOSE(pipefd[1]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("unable to close pipe for hook input"));
|
||||
ret = 1;
|
||||
}
|
||||
if (argv) {
|
||||
for (i = 0 ; i < argc ; i++)
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "util.h"
|
||||
#include "interface.h"
|
||||
#include "virterror_internal.h"
|
||||
#include "files.h"
|
||||
|
||||
#define ifaceError(code, ...) \
|
||||
virReportErrorHelper(NULL, VIR_FROM_NET, code, __FILE__, \
|
||||
@ -82,7 +83,7 @@ ifaceGetFlags(const char *ifname, short *flags) {
|
||||
|
||||
*flags = ifr.ifr_flags;
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -161,7 +162,7 @@ static int chgIfaceFlags(const char *ifname, short flagclear, short flagset) {
|
||||
}
|
||||
|
||||
err_exit:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -259,8 +260,7 @@ ifaceCheck(bool reportError, const char *ifname,
|
||||
}
|
||||
|
||||
err_exit:
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -326,7 +326,7 @@ ifaceGetIndex(bool reportError, const char *ifname, int *ifindex)
|
||||
}
|
||||
|
||||
err_exit:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -373,7 +373,7 @@ ifaceGetVlanID(const char *vlanifname, int *vlanid) {
|
||||
*vlanid = vlanargs.u.VID;
|
||||
|
||||
err_exit:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "util.h"
|
||||
#include "buf.h"
|
||||
#include "threads.h"
|
||||
#include "files.h"
|
||||
|
||||
/*
|
||||
* Macro used to format the message as a string in virLogMessage
|
||||
@ -603,8 +604,7 @@ static int virLogOutputToFd(const char *category ATTRIBUTE_UNUSED,
|
||||
static void virLogCloseFd(void *data) {
|
||||
int fd = (long) data;
|
||||
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
}
|
||||
|
||||
static int virLogAddOutputToStderr(int priority) {
|
||||
@ -622,7 +622,7 @@ static int virLogAddOutputToFile(int priority, const char *file) {
|
||||
return(-1);
|
||||
if (virLogDefineOutput(virLogOutputToFd, virLogCloseFd, (void *)(long)fd,
|
||||
priority, VIR_LOG_TO_FILE, file, 0) < 0) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return(-1);
|
||||
}
|
||||
return(0);
|
||||
|
@ -52,6 +52,7 @@
|
||||
# include "conf/domain_conf.h"
|
||||
# include "virterror_internal.h"
|
||||
# include "uuid.h"
|
||||
# include "files.h"
|
||||
|
||||
# define VIR_FROM_THIS VIR_FROM_NET
|
||||
|
||||
@ -92,12 +93,6 @@ static int nlOpen(void)
|
||||
}
|
||||
|
||||
|
||||
static void nlClose(int fd)
|
||||
{
|
||||
close(fd);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* nlComm:
|
||||
* @nlmsg: pointer to netlink message
|
||||
@ -191,7 +186,7 @@ err_exit:
|
||||
*respbuflen = 0;
|
||||
}
|
||||
|
||||
nlClose(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -689,8 +684,7 @@ create_name:
|
||||
|
||||
if (rc >= 0) {
|
||||
if (configMacvtapTap(rc, vnet_hdr) < 0) {
|
||||
close(rc);
|
||||
rc = -1;
|
||||
VIR_FORCE_CLOSE(rc); /* sets rc to -1 */
|
||||
goto disassociate_exit;
|
||||
}
|
||||
*res_ifname = strdup(cr_ifname);
|
||||
@ -778,8 +772,7 @@ getLldpadPid(void) {
|
||||
_("Error opening file %s"), LLDPAD_PID_FILE);
|
||||
}
|
||||
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return pid;
|
||||
}
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "memory.h"
|
||||
#include "util.h"
|
||||
#include "virterror_internal.h"
|
||||
#include "files.h"
|
||||
|
||||
/* avoid compilation breakage on some systems */
|
||||
#ifndef MODPROBE
|
||||
@ -188,10 +189,7 @@ pciCloseConfig(pciDevice *dev)
|
||||
if (!dev)
|
||||
return;
|
||||
|
||||
if (dev->fd >= 0) {
|
||||
close(dev->fd);
|
||||
dev->fd = -1;
|
||||
}
|
||||
VIR_FORCE_CLOSE(dev->fd);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "memory.h"
|
||||
#include "virterror_internal.h"
|
||||
#include "logging.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
@ -688,7 +689,7 @@ virStorageFileProbeFormat(const char *path)
|
||||
|
||||
ret = virStorageFileProbeFormatFromFD(path, fd);
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -782,7 +783,7 @@ virStorageFileGetMetadata(const char *path,
|
||||
|
||||
ret = virStorageFileGetMetadataFromFD(path, fd, format, meta);
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -72,6 +72,7 @@
|
||||
#include "memory.h"
|
||||
#include "threads.h"
|
||||
#include "verify.h"
|
||||
#include "files.h"
|
||||
|
||||
#ifndef NSIG
|
||||
# define NSIG 32
|
||||
@ -460,6 +461,7 @@ __virExec(const char *const*argv,
|
||||
int pipeerr[2] = {-1,-1};
|
||||
int childout = -1;
|
||||
int childerr = -1;
|
||||
int tmpfd;
|
||||
|
||||
if ((null = open("/dev/null", O_RDONLY)) < 0) {
|
||||
virReportSystemError(errno,
|
||||
@ -533,13 +535,13 @@ __virExec(const char *const*argv,
|
||||
}
|
||||
|
||||
if (pid) { /* parent */
|
||||
close(null);
|
||||
VIR_FORCE_CLOSE(null);
|
||||
if (outfd && *outfd == -1) {
|
||||
close(pipeout[1]);
|
||||
VIR_FORCE_CLOSE(pipeout[1]);
|
||||
*outfd = pipeout[0];
|
||||
}
|
||||
if (errfd && *errfd == -1) {
|
||||
close(pipeerr[1]);
|
||||
VIR_FORCE_CLOSE(pipeerr[1]);
|
||||
*errfd = pipeerr[0];
|
||||
}
|
||||
|
||||
@ -567,8 +569,10 @@ __virExec(const char *const*argv,
|
||||
i != childout &&
|
||||
i != childerr &&
|
||||
(!keepfd ||
|
||||
!FD_ISSET(i, keepfd)))
|
||||
close(i);
|
||||
!FD_ISSET(i, keepfd))) {
|
||||
tmpfd = i;
|
||||
VIR_FORCE_CLOSE(tmpfd);
|
||||
}
|
||||
|
||||
if (dup2(infd >= 0 ? infd : null, STDIN_FILENO) < 0) {
|
||||
virReportSystemError(errno,
|
||||
@ -588,14 +592,15 @@ __virExec(const char *const*argv,
|
||||
goto fork_error;
|
||||
}
|
||||
|
||||
if (infd > 0)
|
||||
close(infd);
|
||||
close(null);
|
||||
if (childout > 0)
|
||||
close(childout);
|
||||
VIR_FORCE_CLOSE(infd);
|
||||
VIR_FORCE_CLOSE(null);
|
||||
tmpfd = childout; /* preserve childout value */
|
||||
VIR_FORCE_CLOSE(tmpfd);
|
||||
if (childerr > 0 &&
|
||||
childerr != childout)
|
||||
close(childerr);
|
||||
childerr != childout) {
|
||||
VIR_FORCE_CLOSE(childerr);
|
||||
childout = -1;
|
||||
}
|
||||
|
||||
/* Daemonize as late as possible, so the parent process can detect
|
||||
* the above errors with wait* */
|
||||
@ -665,16 +670,11 @@ __virExec(const char *const*argv,
|
||||
/* NB we don't virUtilError() on any failures here
|
||||
because the code which jumped hre already raised
|
||||
an error condition which we must not overwrite */
|
||||
if (pipeerr[0] > 0)
|
||||
close(pipeerr[0]);
|
||||
if (pipeerr[1] > 0)
|
||||
close(pipeerr[1]);
|
||||
if (pipeout[0] > 0)
|
||||
close(pipeout[0]);
|
||||
if (pipeout[1] > 0)
|
||||
close(pipeout[1]);
|
||||
if (null > 0)
|
||||
close(null);
|
||||
VIR_FORCE_CLOSE(pipeerr[0]);
|
||||
VIR_FORCE_CLOSE(pipeerr[1]);
|
||||
VIR_FORCE_CLOSE(pipeout[0]);
|
||||
VIR_FORCE_CLOSE(pipeout[1]);
|
||||
VIR_FORCE_CLOSE(null);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -864,10 +864,8 @@ virRunWithHook(const char *const*argv,
|
||||
VIR_FREE(outbuf);
|
||||
VIR_FREE(errbuf);
|
||||
VIR_FREE(argv_str);
|
||||
if (outfd != -1)
|
||||
close(outfd);
|
||||
if (errfd != -1)
|
||||
close(errfd);
|
||||
VIR_FORCE_CLOSE(outfd);
|
||||
VIR_FORCE_CLOSE(errfd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1110,7 +1108,7 @@ int virFileReadAll(const char *path, int maxlen, char **buf)
|
||||
}
|
||||
|
||||
int len = virFileReadLimFD(fd, maxlen, buf);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
if (len < 0) {
|
||||
virReportSystemError(errno, _("Failed to read file '%s'"), path);
|
||||
return -1;
|
||||
@ -1131,13 +1129,13 @@ int virFileWriteStr(const char *path, const char *str)
|
||||
|
||||
if (safewrite(fd, str, strlen(str)) < 0) {
|
||||
int saved_errno = errno;
|
||||
close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Use errno from failed close only if there was no write error. */
|
||||
if (close (fd) != 0)
|
||||
if (VIR_CLOSE(fd) != 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
@ -1316,7 +1314,7 @@ static int virFileOperationNoFork(const char *path, int openflags, mode_t mode,
|
||||
if ((hook) && ((ret = hook(fd, hookdata)) != 0)) {
|
||||
goto error;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
ret = -errno;
|
||||
virReportSystemError(errno, _("failed to close new file '%s'"),
|
||||
path);
|
||||
@ -1325,8 +1323,7 @@ static int virFileOperationNoFork(const char *path, int openflags, mode_t mode,
|
||||
}
|
||||
fd = -1;
|
||||
error:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1477,7 +1474,7 @@ parenterror:
|
||||
if ((hook) && ((ret = hook(fd, hookdata)) != 0)) {
|
||||
goto childerror;
|
||||
}
|
||||
if (close(fd) < 0) {
|
||||
if (VIR_CLOSE(fd) < 0) {
|
||||
ret = -errno;
|
||||
virReportSystemError(errno, _("child failed to close new file '%s'"),
|
||||
path);
|
||||
@ -1754,10 +1751,8 @@ int virFileOpenTtyAt(const char *ptmx,
|
||||
rc = 0;
|
||||
|
||||
cleanup:
|
||||
if (rc != 0 &&
|
||||
*ttymaster != -1) {
|
||||
close(*ttymaster);
|
||||
}
|
||||
if (rc != 0)
|
||||
VIR_FORCE_CLOSE(*ttymaster);
|
||||
|
||||
return rc;
|
||||
|
||||
@ -1823,7 +1818,7 @@ int virFileWritePidPath(const char *pidfile,
|
||||
|
||||
if (!(file = fdopen(fd, "w"))) {
|
||||
rc = errno;
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "virterror_internal.h"
|
||||
#include "logging.h"
|
||||
#include "memory.h"
|
||||
#include "files.h"
|
||||
|
||||
#ifndef ENODATA
|
||||
# define ENODATA EIO
|
||||
@ -61,7 +62,7 @@ virUUIDGenerateRandomBytes(unsigned char *buf,
|
||||
if ((n = read(fd, buf, buflen)) <= 0) {
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return n < 0 ? errno : ENODATA;
|
||||
}
|
||||
|
||||
@ -69,7 +70,7 @@ virUUIDGenerateRandomBytes(unsigned char *buf,
|
||||
buflen -= n;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -240,10 +241,10 @@ getDMISystemUUID(char *uuid, int len)
|
||||
int fd = open(paths[i], O_RDONLY);
|
||||
if (fd > 0) {
|
||||
if (saferead(fd, uuid, len) == len) {
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return 0;
|
||||
}
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "logging.h"
|
||||
#include "virtaudit.h"
|
||||
#include "util.h"
|
||||
#include "files.h"
|
||||
|
||||
/* Provide the macros in case the header file is old.
|
||||
FIXME: should be removed. */
|
||||
@ -134,7 +135,7 @@ void virAuditSend(const char *file ATTRIBUTE_UNUSED, const char *func,
|
||||
void virAuditClose(void)
|
||||
{
|
||||
#if HAVE_AUDIT
|
||||
close(auditfd);
|
||||
VIR_FORCE_CLOSE(auditfd);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -65,6 +65,7 @@
|
||||
#include "buf.h"
|
||||
#include "capabilities.h"
|
||||
#include "memory.h"
|
||||
#include "files.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_XEN
|
||||
|
||||
@ -2019,7 +2020,7 @@ xenHypervisorInit(void)
|
||||
hypervisor_version = -1;
|
||||
virXenError(VIR_ERR_XEN_CALL, " ioctl %lu",
|
||||
(unsigned long) IOCTL_PRIVCMD_HYPERCALL);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
in_init = 0;
|
||||
return(-1);
|
||||
|
||||
@ -2105,13 +2106,13 @@ xenHypervisorInit(void)
|
||||
hypervisor_version = -1;
|
||||
virXenError(VIR_ERR_XEN_CALL, " ioctl %lu",
|
||||
(unsigned long)IOCTL_PRIVCMD_HYPERCALL);
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
in_init = 0;
|
||||
VIR_FREE(ipt);
|
||||
return(-1);
|
||||
|
||||
done:
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
in_init = 0;
|
||||
VIR_FREE(ipt);
|
||||
return(0);
|
||||
@ -2174,7 +2175,7 @@ xenHypervisorClose(virConnectPtr conn)
|
||||
if (priv->handle < 0)
|
||||
return -1;
|
||||
|
||||
ret = close(priv->handle);
|
||||
ret = VIR_CLOSE(priv->handle);
|
||||
if (ret < 0)
|
||||
return (-1);
|
||||
|
||||
@ -2379,8 +2380,7 @@ get_cpu_flags(virConnectPtr conn, const char **hvm, int *pae, int *longmode)
|
||||
ret = 1;
|
||||
|
||||
out:
|
||||
if (fd != -1)
|
||||
close(fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "xend_internal.h"
|
||||
#include "logging.h"
|
||||
#include "uuid.h"
|
||||
#include "files.h"
|
||||
|
||||
#include "xm_internal.h" /* for xenXMDomainConfigParse */
|
||||
|
||||
@ -483,7 +484,7 @@ xenInotifyClose(virConnectPtr conn)
|
||||
|
||||
if (priv->inotifyWatch != -1)
|
||||
virEventRemoveHandle(priv->inotifyWatch);
|
||||
close(priv->inotifyFD);
|
||||
VIR_FORCE_CLOSE(priv->inotifyFD);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include "xs_internal.h" /* To extract VNC port & Serial console TTY */
|
||||
#include "memory.h"
|
||||
#include "count-one-bits.h"
|
||||
#include "files.h"
|
||||
|
||||
/* required for cpumap_t */
|
||||
#include <xen/dom0_ops.h>
|
||||
@ -112,7 +113,6 @@ static int
|
||||
do_connect(virConnectPtr xend)
|
||||
{
|
||||
int s;
|
||||
int serrno;
|
||||
int no_slow_start = 1;
|
||||
xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) xend->privateData;
|
||||
|
||||
@ -131,10 +131,7 @@ do_connect(virConnectPtr xend)
|
||||
|
||||
|
||||
if (connect(s, (struct sockaddr *)&priv->addr, priv->addrlen) == -1) {
|
||||
serrno = errno;
|
||||
close(s);
|
||||
errno = serrno;
|
||||
s = -1;
|
||||
VIR_FORCE_CLOSE(s); /* preserves errno */
|
||||
|
||||
/*
|
||||
* Connecting to XenD when privileged is mandatory, so log this
|
||||
@ -381,7 +378,7 @@ xend_get(virConnectPtr xend, const char *path,
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" "\r\n");
|
||||
|
||||
ret = xend_req(s, content);
|
||||
close(s);
|
||||
VIR_FORCE_CLOSE(s);
|
||||
|
||||
if (((ret < 0) || (ret >= 300)) &&
|
||||
((ret != 404) || (!STRPREFIX(path, "/xend/domain/")))) {
|
||||
@ -430,7 +427,7 @@ xend_post(virConnectPtr xend, const char *path, const char *ops)
|
||||
swrites(s, ops);
|
||||
|
||||
ret = xend_req(s, &err_buf);
|
||||
close(s);
|
||||
VIR_FORCE_CLOSE(s);
|
||||
|
||||
if ((ret < 0) || (ret >= 300)) {
|
||||
virXendError(VIR_ERR_POST_FAILED,
|
||||
@ -821,7 +818,7 @@ xenDaemonOpen_tcp(virConnectPtr conn, const char *host, const char *port)
|
||||
|
||||
if (connect (sock, r->ai_addr, r->ai_addrlen) == -1) {
|
||||
saved_errno = errno;
|
||||
close (sock);
|
||||
VIR_FORCE_CLOSE(sock);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -831,7 +828,7 @@ xenDaemonOpen_tcp(virConnectPtr conn, const char *host, const char *port)
|
||||
memcpy(&priv->addr,
|
||||
r->ai_addr,
|
||||
r->ai_addrlen);
|
||||
close(sock);
|
||||
VIR_FORCE_CLOSE(sock);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -5125,7 +5122,7 @@ xenDaemonDomainBlockPeek (virDomainPtr domain, const char *path,
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
if (fd >= 0) close (fd);
|
||||
VIR_FORCE_CLOSE(fd);
|
||||
sexpr_free(root);
|
||||
virDomainDefFree(def);
|
||||
return ret;
|
||||
|
@ -47,6 +47,8 @@
|
||||
((((int) ((T)->tv_sec - (U)->tv_sec)) * 1000000.0 + \
|
||||
((int) ((T)->tv_usec - (U)->tv_usec))) / 1000.0)
|
||||
|
||||
#include "files.h"
|
||||
|
||||
static unsigned int testDebug = -1;
|
||||
static unsigned int testVerbose = -1;
|
||||
|
||||
@ -222,8 +224,10 @@ void virtTestCaptureProgramExecChild(const char *const argv[],
|
||||
open_max = sysconf (_SC_OPEN_MAX);
|
||||
for (i = 0; i < open_max; i++) {
|
||||
if (i != stdinfd &&
|
||||
i != pipefd)
|
||||
close(i);
|
||||
i != pipefd) {
|
||||
int tmpfd = i;
|
||||
VIR_FORCE_CLOSE(tmpfd);
|
||||
}
|
||||
}
|
||||
|
||||
if (dup2(stdinfd, STDIN_FILENO) != STDIN_FILENO)
|
||||
@ -237,8 +241,7 @@ void virtTestCaptureProgramExecChild(const char *const argv[],
|
||||
execve(argv[0], (char *const*)argv, (char *const*)env);
|
||||
|
||||
cleanup:
|
||||
if (stdinfd != -1)
|
||||
close(stdinfd);
|
||||
VIR_FORCE_CLOSE(stdinfd);
|
||||
}
|
||||
|
||||
int virtTestCaptureProgramOutput(const char *const argv[],
|
||||
@ -252,10 +255,10 @@ int virtTestCaptureProgramOutput(const char *const argv[],
|
||||
int pid = fork();
|
||||
switch (pid) {
|
||||
case 0:
|
||||
close(pipefd[0]);
|
||||
VIR_FORCE_CLOSE(pipefd[0]);
|
||||
virtTestCaptureProgramExecChild(argv, pipefd[1]);
|
||||
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
_exit(1);
|
||||
|
||||
case -1:
|
||||
@ -267,7 +270,7 @@ int virtTestCaptureProgramOutput(const char *const argv[],
|
||||
int ret = -1;
|
||||
int want = buflen-1;
|
||||
|
||||
close(pipefd[1]);
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
|
||||
while (want) {
|
||||
if ((ret = read(pipefd[0], (*buf)+got, want)) <= 0)
|
||||
@ -275,7 +278,7 @@ int virtTestCaptureProgramOutput(const char *const argv[],
|
||||
got += ret;
|
||||
want -= ret;
|
||||
}
|
||||
close(pipefd[0]);
|
||||
VIR_FORCE_CLOSE(pipefd[0]);
|
||||
|
||||
if (!ret)
|
||||
(*buf)[got] = '\0';
|
||||
|
@ -39,6 +39,7 @@
|
||||
# include "internal.h"
|
||||
# include "logging.h"
|
||||
# include "util.h"
|
||||
# include "files.h"
|
||||
|
||||
/* ie Ctrl-] as per telnet */
|
||||
# define CTRL_CLOSE_BRACKET '\35'
|
||||
@ -192,7 +193,7 @@ int vshRunConsole(const char *tty) {
|
||||
tcsetattr(STDIN_FILENO, TCSAFLUSH, &ttyattr);
|
||||
|
||||
closetty:
|
||||
close(ttyfd);
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include "memory.h"
|
||||
#include "xml.h"
|
||||
#include "libvirt/libvirt-qemu.h"
|
||||
#include "files.h"
|
||||
|
||||
static char *progname;
|
||||
|
||||
@ -11269,11 +11270,9 @@ static void
|
||||
vshCloseLogFile(vshControl *ctl)
|
||||
{
|
||||
/* log file close */
|
||||
if (ctl->log_fd >= 0) {
|
||||
if (close(ctl->log_fd) < 0)
|
||||
vshError(ctl, _("%s: failed to write log file: %s"),
|
||||
ctl->logfile ? ctl->logfile : "?", strerror (errno));
|
||||
ctl->log_fd = -1;
|
||||
if (VIR_CLOSE(ctl->log_fd) < 0) {
|
||||
vshError(ctl, _("%s: failed to write log file: %s"),
|
||||
ctl->logfile ? ctl->logfile : "?", strerror (errno));
|
||||
}
|
||||
|
||||
if (ctl->logfile) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user