]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
lxc: reject unknown flags
authorEric Blake <eblake@redhat.com>
Wed, 6 Jul 2011 22:33:53 +0000 (16:33 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 13 Jul 2011 20:42:05 +0000 (14:42 -0600)
* src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
(lxcDomainGetMemoryParameters): Reject unknown flags.
* src/lxc/lxc_container.c (lxcContainerStart): Rename flags to
cflags to reflect that it is not tied to libvirt.

src/lxc/lxc_container.c
src/lxc/lxc_driver.c

index ef8469c411427f69b4b0d8afd23d1b649dad1dd0..8e1860bccbb62f0d8b0cd1c7ac16fff2f51614e3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2010 Red Hat, Inc.
+ * Copyright (C) 2008-2011 Red Hat, Inc.
  * Copyright (C) 2008 IBM Corp.
  *
  * lxc_container.c: file description
@@ -889,7 +889,7 @@ int lxcContainerStart(virDomainDefPtr def,
                       char *ttyPath)
 {
     pid_t pid;
-    int flags;
+    int cflags;
     int stacksize = getpagesize() * 4;
     char *stack, *stacktop;
     lxc_child_argv_t args = { def, nveths, veths, control, ttyPath,
@@ -902,19 +902,19 @@ int lxcContainerStart(virDomainDefPtr def,
     }
     stacktop = stack + stacksize;
 
-    flags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD;
+    cflags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD;
 
     if (userns_supported()) {
         VIR_DEBUG("Enable user namespaces");
-        flags |= CLONE_NEWUSER;
+        cflags |= CLONE_NEWUSER;
     }
 
     if (def->nets != NULL) {
         VIR_DEBUG("Enable network namespaces");
-        flags |= CLONE_NEWNET;
+        cflags |= CLONE_NEWNET;
     }
 
-    pid = clone(lxcContainerChild, stacktop, flags, &args);
+    pid = clone(lxcContainerChild, stacktop, cflags, &args);
     VIR_FREE(stack);
     VIR_DEBUG("clone() completed, new container PID is %d", pid);
 
index 69710da76d118d1f043f25d643ac3ff5ca211914..b6da757b752d6997982a737f384bbb44fb0e5699 100644 (file)
@@ -111,8 +111,10 @@ static void lxcDomainEventQueue(lxc_driver_t *driver,
 
 static virDrvOpenStatus lxcOpen(virConnectPtr conn,
                                 virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                unsigned int flags ATTRIBUTE_UNUSED)
+                                unsigned int flags)
 {
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     /* Verify uri was specified */
     if (conn->uri == NULL) {
         if (lxc_driver == NULL)
@@ -748,7 +750,7 @@ cleanup:
 static int lxcDomainSetMemoryParameters(virDomainPtr dom,
                                         virTypedParameterPtr params,
                                         int nparams,
-                                        unsigned int flags ATTRIBUTE_UNUSED)
+                                        unsigned int flags)
 {
     lxc_driver_t *driver = dom->conn->privateData;
     int i;
@@ -756,6 +758,8 @@ static int lxcDomainSetMemoryParameters(virDomainPtr dom,
     virDomainObjPtr vm = NULL;
     int ret = -1;
 
+    virCheckFlags(0, -1);
+
     lxcDriverLock(driver);
     vm = virDomainFindByUUID(&driver->domains, dom->uuid);
 
@@ -845,7 +849,7 @@ cleanup:
 static int lxcDomainGetMemoryParameters(virDomainPtr dom,
                                         virTypedParameterPtr params,
                                         int *nparams,
-                                        unsigned int flags ATTRIBUTE_UNUSED)
+                                        unsigned int flags)
 {
     lxc_driver_t *driver = dom->conn->privateData;
     int i;
@@ -855,6 +859,8 @@ static int lxcDomainGetMemoryParameters(virDomainPtr dom,
     int ret = -1;
     int rc;
 
+    virCheckFlags(0, -1);
+
     lxcDriverLock(driver);
     vm = virDomainFindByUUID(&driver->domains, dom->uuid);