diff --git a/bootstrap.conf b/bootstrap.conf index 3c3d0e07de..2fc457e8ac 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -27,6 +27,7 @@ byteswap c-ctype c-strcase c-strcasestr +calloc-posix canonicalize-lgpl chown close diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index da91687c10..6eede55b40 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -114,19 +114,6 @@ static int umlOpenMonitor(struct uml_driver *driver, static int umlReadPidFile(struct uml_driver *driver, virDomainObjPtr vm); -static int umlSetCloseExec(int fd) { - int flags; - if ((flags = fcntl(fd, F_GETFD)) < 0) - goto error; - flags |= FD_CLOEXEC; - if ((fcntl(fd, F_SETFD, flags)) < 0) - goto error; - return 0; - error: - VIR_ERROR(_("Failed to set close-on-exec file descriptor flag")); - return -1; -} - static int umlStartVMDaemon(virConnectPtr conn, struct uml_driver *driver, virDomainObjPtr vm); @@ -889,9 +876,9 @@ static int umlStartVMDaemon(virConnectPtr conn, } VIR_FREE(logfile); - if (umlSetCloseExec(logfd) < 0) { - virReportSystemError(errno, - "%s", _("Unable to set VM logfile close-on-exec flag")); + if (virSetCloseExec(logfd) < 0) { + virReportSystemError(errno, "%s", + _("Unable to set VM logfile close-on-exec flag")); VIR_FORCE_CLOSE(logfd); return -1; } diff --git a/src/util/bridge.c b/src/util/bridge.c index 7204e64827..0f4b6397f3 100644 --- a/src/util/bridge.c +++ b/src/util/bridge.c @@ -72,25 +72,16 @@ int brInit(brControl **ctlp) { int fd; - int flags; if (!ctlp || *ctlp) return EINVAL; fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) + if (fd < 0 || + virSetCloseExec(fd) < 0 || + VIR_ALLOC(*ctlp) < 0) { + VIR_FORCE_CLOSE(fd); return errno; - - if ((flags = fcntl(fd, F_GETFD)) < 0 || - fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { - int err = errno; - VIR_FORCE_CLOSE(fd); - return err; - } - - if (VIR_ALLOC(*ctlp) < 0) { - VIR_FORCE_CLOSE(fd); - return ENOMEM; } (*ctlp)->fd = fd; @@ -599,7 +590,7 @@ brSetInterfaceUp(brControl *ctl, int up) { struct ifreq ifr; - int flags; + int ifflags; if (!ctl || !ifname) return EINVAL; @@ -612,10 +603,10 @@ brSetInterfaceUp(brControl *ctl, if (ioctl(ctl->fd, SIOCGIFFLAGS, &ifr) < 0) return errno; - flags = up ? (ifr.ifr_flags | IFF_UP) : (ifr.ifr_flags & ~IFF_UP); + ifflags = up ? (ifr.ifr_flags | IFF_UP) : (ifr.ifr_flags & ~IFF_UP); - if (ifr.ifr_flags != flags) { - ifr.ifr_flags = flags; + if (ifr.ifr_flags != ifflags) { + ifr.ifr_flags = ifflags; if (ioctl(ctl->fd, SIOCSIFFLAGS, &ifr) < 0) return errno;