提交 56965922 编写于 作者: M Michal Privoznik

Adapt to VIR_ALLOC and virAsprintf in src/lxc/*

上级 35048f31
...@@ -547,10 +547,8 @@ virCgroupPtr virLXCCgroupCreate(virDomainDefPtr def, bool startup) ...@@ -547,10 +547,8 @@ virCgroupPtr virLXCCgroupCreate(virDomainDefPtr def, bool startup)
if (!def->resource && startup) { if (!def->resource && startup) {
virDomainResourceDefPtr res; virDomainResourceDefPtr res;
if (VIR_ALLOC(res) < 0) { if (VIR_ALLOC(res) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_STRDUP(res->partition, "/machine") < 0) { if (VIR_STRDUP(res->partition, "/machine") < 0) {
VIR_FREE(res); VIR_FREE(res);
......
...@@ -117,7 +117,7 @@ virCapsPtr lxcCapsInit(virLXCDriverPtr driver) ...@@ -117,7 +117,7 @@ virCapsPtr lxcCapsInit(virLXCDriverPtr driver)
if (STRNEQ(model, "none")) { if (STRNEQ(model, "none")) {
/* Allocate just the primary security driver for LXC. */ /* Allocate just the primary security driver for LXC. */
if (VIR_ALLOC(caps->host.secModels) < 0) if (VIR_ALLOC(caps->host.secModels) < 0)
goto no_memory; goto error;
caps->host.nsecModels = 1; caps->host.nsecModels = 1;
if (VIR_STRDUP(caps->host.secModels[0].model, model) < 0) if (VIR_STRDUP(caps->host.secModels[0].model, model) < 0)
goto error; goto error;
...@@ -133,9 +133,6 @@ virCapsPtr lxcCapsInit(virLXCDriverPtr driver) ...@@ -133,9 +133,6 @@ virCapsPtr lxcCapsInit(virLXCDriverPtr driver)
return caps; return caps;
no_memory:
virReportOOMError();
error: error:
virObjectUnref(caps); virObjectUnref(caps);
return NULL; return NULL;
......
...@@ -158,10 +158,8 @@ int lxcContainerHasReboot(void) ...@@ -158,10 +158,8 @@ int lxcContainerHasReboot(void)
VIR_FREE(buf); VIR_FREE(buf);
cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF; cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0) { if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0)
virReportOOMError();
return -1; return -1;
}
childStack = stack + (getpagesize() * 4); childStack = stack + (getpagesize() * 4);
...@@ -383,7 +381,6 @@ static int lxcContainerRenameAndEnableInterfaces(bool privNet, ...@@ -383,7 +381,6 @@ static int lxcContainerRenameAndEnableInterfaces(bool privNet,
for (i = 0; i < nveths; i++) { for (i = 0; i < nveths; i++) {
if (virAsprintf(&newname, "eth%zu", i) < 0) { if (virAsprintf(&newname, "eth%zu", i) < 0) {
virReportOOMError();
rc = -1; rc = -1;
goto error_out; goto error_out;
} }
...@@ -467,10 +464,8 @@ static int lxcContainerGetSubtree(const char *prefix, ...@@ -467,10 +464,8 @@ static int lxcContainerGetSubtree(const char *prefix,
if (!STRPREFIX(mntent.mnt_dir, prefix)) if (!STRPREFIX(mntent.mnt_dir, prefix))
continue; continue;
if (VIR_REALLOC_N(mounts, nmounts+1) < 0) { if (VIR_REALLOC_N(mounts, nmounts+1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_STRDUP(mounts[nmounts], mntent.mnt_dir) < 0) if (VIR_STRDUP(mounts[nmounts], mntent.mnt_dir) < 0)
goto cleanup; goto cleanup;
nmounts++; nmounts++;
...@@ -568,10 +563,8 @@ static int lxcContainerPrepareRoot(virDomainDefPtr def, ...@@ -568,10 +563,8 @@ static int lxcContainerPrepareRoot(virDomainDefPtr def,
} }
if (virAsprintf(&dst, "%s/%s.root", if (virAsprintf(&dst, "%s/%s.root",
LXC_STATE_DIR, def->name) < 0) { LXC_STATE_DIR, def->name) < 0)
virReportOOMError();
return -1; return -1;
}
tmp = root->dst; tmp = root->dst;
root->dst = dst; root->dst = dst;
...@@ -606,10 +599,8 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root) ...@@ -606,10 +599,8 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
goto err; goto err;
} }
if (virAsprintf(&oldroot, "%s/.oldroot", root->src) < 0) { if (virAsprintf(&oldroot, "%s/.oldroot", root->src) < 0)
virReportOOMError();
goto err; goto err;
}
if (virFileMakePath(oldroot) < 0) { if (virFileMakePath(oldroot) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -628,10 +619,8 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root) ...@@ -628,10 +619,8 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
} }
/* Create a directory called 'new' in tmpfs */ /* Create a directory called 'new' in tmpfs */
if (virAsprintf(&newroot, "%s/new", oldroot) < 0) { if (virAsprintf(&newroot, "%s/new", oldroot) < 0)
virReportOOMError();
goto err; goto err;
}
if (virFileMakePath(newroot) < 0) { if (virFileMakePath(newroot) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -893,10 +882,8 @@ static int lxcContainerSetupDevices(char **ttyPaths, size_t nttyPaths) ...@@ -893,10 +882,8 @@ static int lxcContainerSetupDevices(char **ttyPaths, size_t nttyPaths)
for (i = 0; i < nttyPaths; i++) { for (i = 0; i < nttyPaths; i++) {
char *tty; char *tty;
if (virAsprintf(&tty, "/dev/tty%zu", i+1) < 0) { if (virAsprintf(&tty, "/dev/tty%zu", i+1) < 0)
virReportOOMError();
return -1; return -1;
}
if (symlink(ttyPaths[i], tty) < 0) { if (symlink(ttyPaths[i], tty) < 0) {
VIR_FREE(tty); VIR_FREE(tty);
virReportSystemError(errno, virReportSystemError(errno,
...@@ -924,10 +911,8 @@ static int lxcContainerMountFSBind(virDomainFSDefPtr fs, ...@@ -924,10 +911,8 @@ static int lxcContainerMountFSBind(virDomainFSDefPtr fs,
int ret = -1; int ret = -1;
struct stat st; struct stat st;
if (virAsprintf(&src, "%s%s", srcprefix, fs->src) < 0) { if (virAsprintf(&src, "%s%s", srcprefix, fs->src) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(fs->dst, &st) < 0) { if (stat(fs->dst, &st) < 0) {
if (errno != ENOENT) { if (errno != ENOENT) {
...@@ -1097,10 +1082,8 @@ static int lxcContainerMountFSBlockAuto(virDomainFSDefPtr fs, ...@@ -1097,10 +1082,8 @@ static int lxcContainerMountFSBlockAuto(virDomainFSDefPtr fs,
/* First time around we use /etc/filesystems */ /* First time around we use /etc/filesystems */
retry: retry:
if (virAsprintf(&fslist, "/.oldroot%s", if (virAsprintf(&fslist, "/.oldroot%s",
tryProc ? "/proc/filesystems" : "/etc/filesystems") < 0) { tryProc ? "/proc/filesystems" : "/etc/filesystems") < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
VIR_DEBUG("Open fslist %s", fslist); VIR_DEBUG("Open fslist %s", fslist);
if (!(fp = fopen(fslist, "r"))) { if (!(fp = fopen(fslist, "r"))) {
...@@ -1254,10 +1237,8 @@ static int lxcContainerMountFSBlock(virDomainFSDefPtr fs, ...@@ -1254,10 +1237,8 @@ static int lxcContainerMountFSBlock(virDomainFSDefPtr fs,
char *src = NULL; char *src = NULL;
int ret = -1; int ret = -1;
if (virAsprintf(&src, "%s%s", srcprefix, fs->src) < 0) { if (virAsprintf(&src, "%s%s", srcprefix, fs->src) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
ret = lxcContainerMountFSBlockHelper(fs, src); ret = lxcContainerMountFSBlockHelper(fs, src);
...@@ -1276,10 +1257,8 @@ static int lxcContainerMountFSTmpfs(virDomainFSDefPtr fs, ...@@ -1276,10 +1257,8 @@ static int lxcContainerMountFSTmpfs(virDomainFSDefPtr fs,
char *data = NULL; char *data = NULL;
if (virAsprintf(&data, if (virAsprintf(&data,
"size=%lldk%s", fs->usage, sec_mount_options) < 0) { "size=%lldk%s", fs->usage, sec_mount_options) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virFileMakePath(fs->dst) < 0) { if (virFileMakePath(fs->dst) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1396,15 +1375,11 @@ static int lxcContainerSetupDisk(virDomainDefPtr vmDef, ...@@ -1396,15 +1375,11 @@ static int lxcContainerSetupDisk(virDomainDefPtr vmDef,
goto cleanup; goto cleanup;
} }
if (virAsprintf(&src, "/.oldroot/%s", def->src) < 0) { if (virAsprintf(&src, "/.oldroot/%s", def->src) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dst, "/dev/%s", def->dst) < 0) { if (virAsprintf(&dst, "/dev/%s", def->dst) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(src, &sb) < 0) { if (stat(src, &sb) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1484,22 +1459,16 @@ static int lxcContainerSetupHostdevSubsysUSB(virDomainDefPtr vmDef ATTRIBUTE_UNU ...@@ -1484,22 +1459,16 @@ static int lxcContainerSetupHostdevSubsysUSB(virDomainDefPtr vmDef ATTRIBUTE_UNU
mode_t mode; mode_t mode;
if (virAsprintf(&dstdir, USB_DEVFS "/%03d", if (virAsprintf(&dstdir, USB_DEVFS "/%03d",
def->source.subsys.u.usb.bus) < 0) { def->source.subsys.u.usb.bus) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dstfile, "%s/%03d", if (virAsprintf(&dstfile, "%s/%03d",
dstdir, dstdir,
def->source.subsys.u.usb.device) < 0) { def->source.subsys.u.usb.device) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&src, "/.oldroot/%s", dstfile) < 0) { if (virAsprintf(&src, "/.oldroot/%s", dstfile) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(src, &sb) < 0) { if (stat(src, &sb) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1586,10 +1555,8 @@ static int lxcContainerSetupHostdevCapsStorage(virDomainDefPtr vmDef ATTRIBUTE_U ...@@ -1586,10 +1555,8 @@ static int lxcContainerSetupHostdevCapsStorage(virDomainDefPtr vmDef ATTRIBUTE_U
goto cleanup; goto cleanup;
} }
if (virAsprintf(&src, "/.oldroot/%s", dev) < 0) { if (virAsprintf(&src, "/.oldroot/%s", dev) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(src, &sb) < 0) { if (stat(src, &sb) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1650,10 +1617,8 @@ static int lxcContainerSetupHostdevCapsMisc(virDomainDefPtr vmDef ATTRIBUTE_UNUS ...@@ -1650,10 +1617,8 @@ static int lxcContainerSetupHostdevCapsMisc(virDomainDefPtr vmDef ATTRIBUTE_UNUS
goto cleanup; goto cleanup;
} }
if (virAsprintf(&src, "/.oldroot/%s", dev) < 0) { if (virAsprintf(&src, "/.oldroot/%s", dev) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(src, &sb) < 0) { if (stat(src, &sb) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -2002,10 +1967,8 @@ static int lxcContainerChild(void *data) ...@@ -2002,10 +1967,8 @@ static int lxcContainerChild(void *data)
if (STRPREFIX(tty, "/dev/pts/")) if (STRPREFIX(tty, "/dev/pts/"))
tty += strlen("/dev/pts/"); tty += strlen("/dev/pts/");
if (virAsprintf(&ttyPath, "%s/%s.devpts/%s", if (virAsprintf(&ttyPath, "%s/%s.devpts/%s",
LXC_STATE_DIR, vmDef->name, tty) < 0) { LXC_STATE_DIR, vmDef->name, tty) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
} else if (VIR_STRDUP(ttyPath, "/dev/null") < 0) { } else if (VIR_STRDUP(ttyPath, "/dev/null") < 0) {
goto cleanup; goto cleanup;
} }
...@@ -2156,10 +2119,8 @@ int lxcContainerStart(virDomainDefPtr def, ...@@ -2156,10 +2119,8 @@ int lxcContainerStart(virDomainDefPtr def,
ttyPaths, nttyPaths, handshakefd}; ttyPaths, nttyPaths, handshakefd};
/* allocate a stack for the container */ /* allocate a stack for the container */
if (VIR_ALLOC_N(stack, stacksize) < 0) { if (VIR_ALLOC_N(stack, stacksize) < 0)
virReportOOMError();
return -1; return -1;
}
stacktop = stack + stacksize; stacktop = stack + stacksize;
cflags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD; cflags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD;
......
...@@ -150,10 +150,8 @@ static virLXCControllerPtr virLXCControllerNew(const char *name) ...@@ -150,10 +150,8 @@ static virLXCControllerPtr virLXCControllerNew(const char *name)
virDomainXMLOptionPtr xmlopt = NULL; virDomainXMLOptionPtr xmlopt = NULL;
char *configFile = NULL; char *configFile = NULL;
if (VIR_ALLOC(ctrl) < 0) { if (VIR_ALLOC(ctrl) < 0)
virReportOOMError();
goto error; goto error;
}
ctrl->timerShutdown = -1; ctrl->timerShutdown = -1;
ctrl->firstClient = true; ctrl->firstClient = true;
...@@ -279,10 +277,8 @@ static void virLXCControllerFree(virLXCControllerPtr ctrl) ...@@ -279,10 +277,8 @@ static void virLXCControllerFree(virLXCControllerPtr ctrl)
static int virLXCControllerAddConsole(virLXCControllerPtr ctrl, static int virLXCControllerAddConsole(virLXCControllerPtr ctrl,
int hostFd) int hostFd)
{ {
if (VIR_EXPAND_N(ctrl->consoles, ctrl->nconsoles, 1) < 0) { if (VIR_EXPAND_N(ctrl->consoles, ctrl->nconsoles, 1) < 0)
virReportOOMError();
return -1; return -1;
}
ctrl->consoles[ctrl->nconsoles-1].server = ctrl->server; ctrl->consoles[ctrl->nconsoles-1].server = ctrl->server;
ctrl->consoles[ctrl->nconsoles-1].hostFd = hostFd; ctrl->consoles[ctrl->nconsoles-1].hostFd = hostFd;
ctrl->consoles[ctrl->nconsoles-1].hostWatch = -1; ctrl->consoles[ctrl->nconsoles-1].hostWatch = -1;
...@@ -473,7 +469,6 @@ static int virLXCControllerSetupLoopDevices(virLXCControllerPtr ctrl) ...@@ -473,7 +469,6 @@ static int virLXCControllerSetupLoopDevices(virLXCControllerPtr ctrl)
VIR_DEBUG("Saving loop fd %d", fd); VIR_DEBUG("Saving loop fd %d", fd);
if (VIR_EXPAND_N(ctrl->loopDevFds, ctrl->nloopDevs, 1) < 0) { if (VIR_EXPAND_N(ctrl->loopDevFds, ctrl->nloopDevs, 1) < 0) {
VIR_FORCE_CLOSE(fd); VIR_FORCE_CLOSE(fd);
virReportOOMError();
goto cleanup; goto cleanup;
} }
ctrl->loopDevFds[ctrl->nloopDevs - 1] = fd; ctrl->loopDevFds[ctrl->nloopDevs - 1] = fd;
...@@ -521,7 +516,6 @@ static int virLXCControllerSetupLoopDevices(virLXCControllerPtr ctrl) ...@@ -521,7 +516,6 @@ static int virLXCControllerSetupLoopDevices(virLXCControllerPtr ctrl)
VIR_DEBUG("Saving loop fd %d", fd); VIR_DEBUG("Saving loop fd %d", fd);
if (VIR_EXPAND_N(ctrl->loopDevFds, ctrl->nloopDevs, 1) < 0) { if (VIR_EXPAND_N(ctrl->loopDevFds, ctrl->nloopDevs, 1) < 0) {
VIR_FORCE_CLOSE(fd); VIR_FORCE_CLOSE(fd);
virReportOOMError();
goto cleanup; goto cleanup;
} }
ctrl->loopDevFds[ctrl->nloopDevs - 1] = fd; ctrl->loopDevFds[ctrl->nloopDevs - 1] = fd;
...@@ -707,10 +701,8 @@ static int virLXCControllerSetupServer(virLXCControllerPtr ctrl) ...@@ -707,10 +701,8 @@ static int virLXCControllerSetupServer(virLXCControllerPtr ctrl)
char *sockpath; char *sockpath;
if (virAsprintf(&sockpath, "%s/%s.sock", if (virAsprintf(&sockpath, "%s/%s.sock",
LXC_STATE_DIR, ctrl->name) < 0) { LXC_STATE_DIR, ctrl->name) < 0)
virReportOOMError();
return -1; return -1;
}
if (!(ctrl->server = virNetServerNew(0, 0, 0, 1, if (!(ctrl->server = virNetServerNew(0, 0, 0, 1,
-1, 0, false, -1, 0, false,
...@@ -1228,10 +1220,8 @@ static int virLXCControllerSetupDev(virLXCControllerPtr ctrl) ...@@ -1228,10 +1220,8 @@ static int virLXCControllerSetupDev(virLXCControllerPtr ctrl)
ctrl->def); ctrl->def);
if (virAsprintf(&dev, "/%s/%s.dev", if (virAsprintf(&dev, "/%s/%s.dev",
LXC_STATE_DIR, ctrl->def->name) < 0) { LXC_STATE_DIR, ctrl->def->name) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virFileMakePath(dev) < 0) { if (virFileMakePath(dev) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1245,10 +1235,8 @@ static int virLXCControllerSetupDev(virLXCControllerPtr ctrl) ...@@ -1245,10 +1235,8 @@ static int virLXCControllerSetupDev(virLXCControllerPtr ctrl)
*/ */
if (virAsprintf(&opts, if (virAsprintf(&opts,
"mode=755,size=65536%s", mount_options) < 0) { "mode=755,size=65536%s", mount_options) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
VIR_DEBUG("Mount devfs on %s type=tmpfs flags=%x, opts=%s", VIR_DEBUG("Mount devfs on %s type=tmpfs flags=%x, opts=%s",
dev, MS_NOSUID, opts); dev, MS_NOSUID, opts);
...@@ -1295,10 +1283,8 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl) ...@@ -1295,10 +1283,8 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl)
/* Populate /dev/ with a few important bits */ /* Populate /dev/ with a few important bits */
for (i = 0; i < ARRAY_CARDINALITY(devs); i++) { for (i = 0; i < ARRAY_CARDINALITY(devs); i++) {
if (virAsprintf(&path, "/%s/%s.dev/%s", if (virAsprintf(&path, "/%s/%s.dev/%s",
LXC_STATE_DIR, ctrl->def->name, devs[i].path) < 0) { LXC_STATE_DIR, ctrl->def->name, devs[i].path) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
dev_t dev = makedev(devs[i].maj, devs[i].min); dev_t dev = makedev(devs[i].maj, devs[i].min);
if (mknod(path, S_IFCHR, dev) < 0 || if (mknod(path, S_IFCHR, dev) < 0 ||
...@@ -1439,7 +1425,6 @@ lxcCreateTty(virLXCControllerPtr ctrl, int *ttymaster, ...@@ -1439,7 +1425,6 @@ lxcCreateTty(virLXCControllerPtr ctrl, int *ttymaster,
if ((virAsprintf(ttyName, "/dev/pts/%d", ptyno) < 0) || if ((virAsprintf(ttyName, "/dev/pts/%d", ptyno) < 0) ||
(virAsprintf(ttyHostPath, "/%s/%s.devpts/%d", LXC_STATE_DIR, (virAsprintf(ttyHostPath, "/%s/%s.devpts/%d", LXC_STATE_DIR,
ctrl->def->name, ptyno) < 0)) { ctrl->def->name, ptyno) < 0)) {
virReportOOMError();
errno = ENOMEM; errno = ENOMEM;
goto cleanup; goto cleanup;
} }
...@@ -1516,10 +1501,8 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl) ...@@ -1516,10 +1501,8 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl)
if (virAsprintf(&devpts, "%s/%s.devpts", if (virAsprintf(&devpts, "%s/%s.devpts",
LXC_STATE_DIR, ctrl->def->name) < 0 || LXC_STATE_DIR, ctrl->def->name) < 0 ||
virAsprintf(&ctrl->devptmx, "%s/%s.devpts/ptmx", virAsprintf(&ctrl->devptmx, "%s/%s.devpts/ptmx",
LXC_STATE_DIR, ctrl->def->name) < 0) { LXC_STATE_DIR, ctrl->def->name) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virFileMakePath(devpts) < 0) { if (virFileMakePath(devpts) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -1531,10 +1514,8 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl) ...@@ -1531,10 +1514,8 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl)
/* XXX should we support gid=X for X!=5 for distros which use /* XXX should we support gid=X for X!=5 for distros which use
* a different gid for tty? */ * a different gid for tty? */
if (virAsprintf(&opts, "newinstance,ptmxmode=0666,mode=0620,gid=5%s", if (virAsprintf(&opts, "newinstance,ptmxmode=0666,mode=0620,gid=5%s",
(mount_options ? mount_options : "")) < 0) { (mount_options ? mount_options : "")) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
VIR_DEBUG("Mount devpts on %s type=tmpfs flags=%x, opts=%s", VIR_DEBUG("Mount devpts on %s type=tmpfs flags=%x, opts=%s",
devpts, MS_NOSUID, opts); devpts, MS_NOSUID, opts);
...@@ -1709,10 +1690,8 @@ virLXCControllerRun(virLXCControllerPtr ctrl) ...@@ -1709,10 +1690,8 @@ virLXCControllerRun(virLXCControllerPtr ctrl)
size_t i; size_t i;
virCgroupPtr cgroup = NULL; virCgroupPtr cgroup = NULL;
if (VIR_ALLOC_N(containerTTYPaths, ctrl->nconsoles) < 0) { if (VIR_ALLOC_N(containerTTYPaths, ctrl->nconsoles) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (socketpair(PF_UNIX, SOCK_STREAM, 0, control) < 0) { if (socketpair(PF_UNIX, SOCK_STREAM, 0, control) < 0) {
virReportSystemError(errno, "%s", virReportSystemError(errno, "%s",
...@@ -1872,19 +1851,15 @@ int main(int argc, char *argv[]) ...@@ -1872,19 +1851,15 @@ int main(int argc, char *argv[])
break; break;
case 'v': case 'v':
if (VIR_REALLOC_N(veths, nveths+1) < 0) { if (VIR_REALLOC_N(veths, nveths+1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_STRDUP(veths[nveths++], optarg) < 0) if (VIR_STRDUP(veths[nveths++], optarg) < 0)
goto cleanup; goto cleanup;
break; break;
case 'c': case 'c':
if (VIR_REALLOC_N(ttyFDs, nttyFDs + 1) < 0) { if (VIR_REALLOC_N(ttyFDs, nttyFDs + 1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virStrToLong_i(optarg, NULL, 10, &ttyFDs[nttyFDs++]) < 0) { if (virStrToLong_i(optarg, NULL, 10, &ttyFDs[nttyFDs++]) < 0) {
fprintf(stderr, "malformed --console argument '%s'", optarg); fprintf(stderr, "malformed --console argument '%s'", optarg);
goto cleanup; goto cleanup;
......
...@@ -2885,10 +2885,8 @@ lxcDomainShutdownFlags(virDomainPtr dom, ...@@ -2885,10 +2885,8 @@ lxcDomainShutdownFlags(virDomainPtr dom,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (flags == 0 || if (flags == 0 ||
(flags & VIR_DOMAIN_SHUTDOWN_INITCTL)) { (flags & VIR_DOMAIN_SHUTDOWN_INITCTL)) {
...@@ -2977,10 +2975,8 @@ lxcDomainReboot(virDomainPtr dom, ...@@ -2977,10 +2975,8 @@ lxcDomainReboot(virDomainPtr dom,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (flags == 0 || if (flags == 0 ||
(flags & VIR_DOMAIN_REBOOT_INITCTL)) { (flags & VIR_DOMAIN_REBOOT_INITCTL)) {
...@@ -3037,10 +3033,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef, ...@@ -3037,10 +3033,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef,
_("target %s already exists."), disk->dst); _("target %s already exists."), disk->dst);
return -1; return -1;
} }
if (virDomainDiskInsert(vmdef, disk)) { if (virDomainDiskInsert(vmdef, disk))
virReportOOMError();
return -1; return -1;
}
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */ /* vmdef has the pointer. Generic codes for vmdef will do all jobs */
dev->data.disk = NULL; dev->data.disk = NULL;
ret = 0; ret = 0;
...@@ -3048,10 +3042,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef, ...@@ -3048,10 +3042,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef,
case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_NET:
net = dev->data.net; net = dev->data.net;
if (virDomainNetInsert(vmdef, net) < 0) { if (virDomainNetInsert(vmdef, net) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
dev->data.net = NULL; dev->data.net = NULL;
ret = 0; ret = 0;
break; break;
...@@ -3063,10 +3055,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef, ...@@ -3063,10 +3055,8 @@ lxcDomainAttachDeviceConfig(virDomainDefPtr vmdef,
_("device is already in the domain configuration")); _("device is already in the domain configuration"));
return -1; return -1;
} }
if (virDomainHostdevInsert(vmdef, hostdev) < 0) { if (virDomainHostdevInsert(vmdef, hostdev) < 0)
virReportOOMError();
return -1; return -1;
}
dev->data.hostdev = NULL; dev->data.hostdev = NULL;
ret = 0; ret = 0;
break; break;
...@@ -3241,15 +3231,11 @@ lxcDomainAttachDeviceDiskLive(virLXCDriverPtr driver, ...@@ -3241,15 +3231,11 @@ lxcDomainAttachDeviceDiskLive(virLXCDriverPtr driver,
} }
if (virAsprintf(&dst, "/proc/%llu/root/dev/%s", if (virAsprintf(&dst, "/proc/%llu/root/dev/%s",
(unsigned long long)priv->initpid, def->dst) < 0) { (unsigned long long)priv->initpid, def->dst) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0) { if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
mode = 0700; mode = 0700;
if (S_ISCHR(sb.st_mode)) if (S_ISCHR(sb.st_mode))
...@@ -3329,10 +3315,8 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn, ...@@ -3329,10 +3315,8 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
} }
/* preallocate new slot for device */ /* preallocate new slot for device */
if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets+1) < 0) { if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets+1) < 0)
virReportOOMError();
return -1; return -1;
}
/* If appropriate, grab a physical device from the configured /* If appropriate, grab a physical device from the configured
* network's pool of devices, or resolve bridge device name * network's pool of devices, or resolve bridge device name
...@@ -3466,31 +3450,23 @@ lxcDomainAttachDeviceHostdevSubsysUSBLive(virLXCDriverPtr driver, ...@@ -3466,31 +3450,23 @@ lxcDomainAttachDeviceHostdevSubsysUSBLive(virLXCDriverPtr driver,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dstdir, "%s/dev/bus/%03d", if (virAsprintf(&dstdir, "%s/dev/bus/%03d",
vroot, vroot,
def->source.subsys.u.usb.bus) < 0) { def->source.subsys.u.usb.bus) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dstfile, "%s/%03d", if (virAsprintf(&dstfile, "%s/%03d",
dstdir, dstdir,
def->source.subsys.u.usb.device) < 0) { def->source.subsys.u.usb.device) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&src, "/dev/bus/usb/%03d/%03d", if (virAsprintf(&src, "/dev/bus/usb/%03d/%03d",
def->source.subsys.u.usb.bus, def->source.subsys.u.usb.bus,
def->source.subsys.u.usb.device) < 0) { def->source.subsys.u.usb.device) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) { if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
...@@ -3599,22 +3575,16 @@ lxcDomainAttachDeviceHostdevStorageLive(virLXCDriverPtr driver, ...@@ -3599,22 +3575,16 @@ lxcDomainAttachDeviceHostdevStorageLive(virLXCDriverPtr driver,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dst, "%s/%s", if (virAsprintf(&dst, "%s/%s",
vroot, vroot,
def->source.caps.u.storage.block) < 0) { def->source.caps.u.storage.block) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) { if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (lxcContainerSetupHostdevCapsMakePath(dst) < 0) { if (lxcContainerSetupHostdevCapsMakePath(dst) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -3710,22 +3680,16 @@ lxcDomainAttachDeviceHostdevMiscLive(virLXCDriverPtr driver, ...@@ -3710,22 +3680,16 @@ lxcDomainAttachDeviceHostdevMiscLive(virLXCDriverPtr driver,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dst, "%s/%s", if (virAsprintf(&dst, "%s/%s",
vroot, vroot,
def->source.caps.u.misc.chardev) < 0) { def->source.caps.u.misc.chardev) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) { if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (lxcContainerSetupHostdevCapsMakePath(dst) < 0) { if (lxcContainerSetupHostdevCapsMakePath(dst) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -3913,10 +3877,8 @@ lxcDomainDetachDeviceDiskLive(virDomainObjPtr vm, ...@@ -3913,10 +3877,8 @@ lxcDomainDetachDeviceDiskLive(virDomainObjPtr vm,
def = vm->def->disks[i]; def = vm->def->disks[i];
if (virAsprintf(&dst, "/proc/%llu/root/dev/%s", if (virAsprintf(&dst, "/proc/%llu/root/dev/%s",
(unsigned long long)priv->initpid, def->dst) < 0) { (unsigned long long)priv->initpid, def->dst) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) { if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
...@@ -4035,18 +3997,14 @@ lxcDomainDetachDeviceHostdevUSBLive(virLXCDriverPtr driver, ...@@ -4035,18 +3997,14 @@ lxcDomainDetachDeviceHostdevUSBLive(virLXCDriverPtr driver,
} }
if (virAsprintf(&vroot, "/proc/%llu/root", if (virAsprintf(&vroot, "/proc/%llu/root",
(unsigned long long)priv->initpid) < 0) { (unsigned long long)priv->initpid) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (virAsprintf(&dst, "%s/dev/bus/usb/%03d/%03d", if (virAsprintf(&dst, "%s/dev/bus/usb/%03d/%03d",
vroot, vroot,
def->source.subsys.u.usb.bus, def->source.subsys.u.usb.bus,
def->source.subsys.u.usb.device) < 0) { def->source.subsys.u.usb.device) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) { if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
...@@ -4113,10 +4071,8 @@ lxcDomainDetachDeviceHostdevStorageLive(virDomainObjPtr vm, ...@@ -4113,10 +4071,8 @@ lxcDomainDetachDeviceHostdevStorageLive(virDomainObjPtr vm,
if (virAsprintf(&dst, "/proc/%llu/root/%s", if (virAsprintf(&dst, "/proc/%llu/root/%s",
(unsigned long long)priv->initpid, (unsigned long long)priv->initpid,
def->source.caps.u.storage.block) < 0) { def->source.caps.u.storage.block) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) { if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
...@@ -4174,10 +4130,8 @@ lxcDomainDetachDeviceHostdevMiscLive(virDomainObjPtr vm, ...@@ -4174,10 +4130,8 @@ lxcDomainDetachDeviceHostdevMiscLive(virDomainObjPtr vm,
if (virAsprintf(&dst, "/proc/%llu/root/%s", if (virAsprintf(&dst, "/proc/%llu/root/%s",
(unsigned long long)priv->initpid, (unsigned long long)priv->initpid,
def->source.caps.u.misc.chardev) < 0) { def->source.caps.u.misc.chardev) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) { if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
......
...@@ -52,10 +52,8 @@ static int lxcProcGetattr(const char *path, struct stat *stbuf) ...@@ -52,10 +52,8 @@ static int lxcProcGetattr(const char *path, struct stat *stbuf)
virDomainDefPtr def = (virDomainDefPtr)context->private_data; virDomainDefPtr def = (virDomainDefPtr)context->private_data;
memset(stbuf, 0, sizeof(struct stat)); memset(stbuf, 0, sizeof(struct stat));
if (virAsprintf(&mempath, "/proc/%s", path) < 0) { if (virAsprintf(&mempath, "/proc/%s", path) < 0)
virReportOOMError();
return -errno; return -errno;
}
res = 0; res = 0;
...@@ -238,10 +236,8 @@ static int lxcProcRead(const char *path ATTRIBUTE_UNUSED, ...@@ -238,10 +236,8 @@ static int lxcProcRead(const char *path ATTRIBUTE_UNUSED,
struct fuse_context *context = NULL; struct fuse_context *context = NULL;
virDomainDefPtr def = NULL; virDomainDefPtr def = NULL;
if (virAsprintf(&hostpath, "/proc/%s", path) < 0) { if (virAsprintf(&hostpath, "/proc/%s", path) < 0)
virReportOOMError();
return -errno; return -errno;
}
context = fuse_get_context(); context = fuse_get_context();
def = (virDomainDefPtr)context->private_data; def = (virDomainDefPtr)context->private_data;
...@@ -297,10 +293,8 @@ int lxcSetupFuse(virLXCFusePtr *f, virDomainDefPtr def) ...@@ -297,10 +293,8 @@ int lxcSetupFuse(virLXCFusePtr *f, virDomainDefPtr def)
goto cleanup2; goto cleanup2;
if (virAsprintf(&fuse->mountpoint, "%s/%s.fuse/", LXC_STATE_DIR, if (virAsprintf(&fuse->mountpoint, "%s/%s.fuse/", LXC_STATE_DIR,
def->name) < 0) { def->name) < 0)
virReportOOMError();
goto cleanup1; goto cleanup1;
}
if (virFileMakePath(fuse->mountpoint) < 0) { if (virFileMakePath(fuse->mountpoint) < 0) {
virReportSystemError(errno, _("Cannot create %s"), virReportSystemError(errno, _("Cannot create %s"),
......
...@@ -155,7 +155,7 @@ virLXCMonitorPtr virLXCMonitorNew(virDomainObjPtr vm, ...@@ -155,7 +155,7 @@ virLXCMonitorPtr virLXCMonitorNew(virDomainObjPtr vm,
if (virAsprintf(&sockpath, "%s/%s.sock", if (virAsprintf(&sockpath, "%s/%s.sock",
socketdir, vm->def->name) < 0) socketdir, vm->def->name) < 0)
goto no_memory; goto error;
if (!(mon->client = virNetClientNewUNIX(sockpath, false, NULL))) if (!(mon->client = virNetClientNewUNIX(sockpath, false, NULL)))
goto error; goto error;
...@@ -185,8 +185,6 @@ cleanup: ...@@ -185,8 +185,6 @@ cleanup:
VIR_FREE(sockpath); VIR_FREE(sockpath);
return mon; return mon;
no_memory:
virReportOOMError();
error: error:
virObjectUnref(mon); virObjectUnref(mon);
mon = NULL; mon = NULL;
......
...@@ -442,10 +442,8 @@ static int virLXCProcessSetupInterfaces(virConnectPtr conn, ...@@ -442,10 +442,8 @@ static int virLXCProcessSetupInterfaces(virConnectPtr conn,
if (networkAllocateActualDevice(def->nets[i]) < 0) if (networkAllocateActualDevice(def->nets[i]) < 0)
goto cleanup; goto cleanup;
if (VIR_EXPAND_N(*veths, *nveths, 1) < 0) { if (VIR_EXPAND_N(*veths, *nveths, 1) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
switch (virDomainNetGetActualType(def->nets[i])) { switch (virDomainNetGetActualType(def->nets[i])) {
case VIR_DOMAIN_NET_TYPE_NETWORK: { case VIR_DOMAIN_NET_TYPE_NETWORK: {
...@@ -648,10 +646,8 @@ virLXCProcessGetNsInode(pid_t pid, ...@@ -648,10 +646,8 @@ virLXCProcessGetNsInode(pid_t pid,
int ret = -1; int ret = -1;
if (virAsprintf(&path, "/proc/%llu/ns/%s", if (virAsprintf(&path, "/proc/%llu/ns/%s",
(unsigned long long)pid, nsname) < 0) { (unsigned long long)pid, nsname) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (stat(path, &sb) < 0) { if (stat(path, &sb) < 0) {
virReportSystemError(errno, virReportSystemError(errno,
...@@ -992,7 +988,7 @@ virLXCProcessEnsureRootFS(virDomainObjPtr vm) ...@@ -992,7 +988,7 @@ virLXCProcessEnsureRootFS(virDomainObjPtr vm)
return 0; return 0;
if (VIR_ALLOC(root) < 0) if (VIR_ALLOC(root) < 0)
goto no_memory; goto error;
root->type = VIR_DOMAIN_FS_TYPE_MOUNT; root->type = VIR_DOMAIN_FS_TYPE_MOUNT;
...@@ -1000,16 +996,14 @@ virLXCProcessEnsureRootFS(virDomainObjPtr vm) ...@@ -1000,16 +996,14 @@ virLXCProcessEnsureRootFS(virDomainObjPtr vm)
VIR_STRDUP(root->dst, "/") < 0) VIR_STRDUP(root->dst, "/") < 0)
goto error; goto error;
if (VIR_INSERT_ELEMENT_QUIET(vm->def->fss, if (VIR_INSERT_ELEMENT(vm->def->fss,
0, 0,
vm->def->nfss, vm->def->nfss,
root) < 0) root) < 0)
goto no_memory; goto error;
return 0; return 0;
no_memory:
virReportOOMError();
error: error:
virDomainFSDefFree(root); virDomainFSDefFree(root);
return -1; return -1;
...@@ -1084,10 +1078,8 @@ int virLXCProcessStart(virConnectPtr conn, ...@@ -1084,10 +1078,8 @@ int virLXCProcessStart(virConnectPtr conn,
} }
if (virAsprintf(&logfile, "%s/%s.log", if (virAsprintf(&logfile, "%s/%s.log",
driver->logDir, vm->def->name) < 0) { driver->logDir, vm->def->name) < 0)
virReportOOMError();
return -1; return -1;
}
/* Do this up front, so any part of the startup process can add /* Do this up front, so any part of the startup process can add
* runtime state to vm->def that won't be persisted. This let's us * runtime state to vm->def that won't be persisted. This let's us
...@@ -1127,10 +1119,8 @@ int virLXCProcessStart(virConnectPtr conn, ...@@ -1127,10 +1119,8 @@ int virLXCProcessStart(virConnectPtr conn,
* and forward I/O between them. * and forward I/O between them.
*/ */
nttyFDs = vm->def->nconsoles; nttyFDs = vm->def->nconsoles;
if (VIR_ALLOC_N(ttyFDs, nttyFDs) < 0) { if (VIR_ALLOC_N(ttyFDs, nttyFDs) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
for (i = 0; i < vm->def->nconsoles; i++) for (i = 0; i < vm->def->nconsoles; i++)
ttyFDs[i] = -1; ttyFDs[i] = -1;
...@@ -1170,10 +1160,8 @@ int virLXCProcessStart(virConnectPtr conn, ...@@ -1170,10 +1160,8 @@ int virLXCProcessStart(virConnectPtr conn,
vm->def->consoles[i]->source.data.file.path = ttyPath; vm->def->consoles[i]->source.data.file.path = ttyPath;
VIR_FREE(vm->def->consoles[i]->info.alias); VIR_FREE(vm->def->consoles[i]->info.alias);
if (virAsprintf(&vm->def->consoles[i]->info.alias, "console%zu", i) < 0) { if (virAsprintf(&vm->def->consoles[i]->info.alias, "console%zu", i) < 0)
virReportOOMError();
goto cleanup; goto cleanup;
}
} }
if (virLXCProcessSetupInterfaces(conn, vm->def, &nveths, &veths) < 0) if (virLXCProcessSetupInterfaces(conn, vm->def, &nveths, &veths) < 0)
...@@ -1224,10 +1212,8 @@ int virLXCProcessStart(virConnectPtr conn, ...@@ -1224,10 +1212,8 @@ int virLXCProcessStart(virConnectPtr conn,
} }
/* Log timestamp */ /* Log timestamp */
if ((timestamp = virTimeStringNow()) == NULL) { if ((timestamp = virTimeStringNow()) == NULL)
virReportOOMError();
goto cleanup; goto cleanup;
}
if (safewrite(logfd, timestamp, strlen(timestamp)) < 0 || if (safewrite(logfd, timestamp, strlen(timestamp)) < 0 ||
safewrite(logfd, START_POSTFIX, strlen(START_POSTFIX)) < 0) { safewrite(logfd, START_POSTFIX, strlen(START_POSTFIX)) < 0) {
VIR_WARN("Unable to write timestamp to logfile: %s", VIR_WARN("Unable to write timestamp to logfile: %s",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册