Re: [libvirt] [PATCHv2 10/27] lxc: reject unknown flags

2011-07-13 Thread Eric Blake
On 07/13/2011 06:21 AM, Matthias Bolte wrote:
> 2011/7/8 Eric Blake :
>> * src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
>> (lxcDomainGetMemoryParameters): Reject unknown flags.
>> * src/lxc/lxc_container.c (lxcContainerStart): Use unsigned flags.
>> @@ -889,7 +889,7 @@ int lxcContainerStart(virDomainDefPtr def,
>>   char *ttyPath)
>>  {
>> pid_t pid;
>> -int flags;
>> +unsigned int flags;
> 
> flags is passed to clone that takes int, so rename this to cflags (in
> line with oflags and fflags) and keep it as int.
> 
> ACK, with the clone flags as int.

Good idea.  I squashed this in, then pushed 9 and 10 (8 will be saved
for my round 3 posting, since you had more comments on the esx migration
flag handling).

Slowly making my way through this series...

diff --git i/src/lxc/lxc_container.c w/src/lxc/lxc_container.c
index ffa2f34..8e1860b 100644
--- i/src/lxc/lxc_container.c
+++ w/src/lxc/lxc_container.c
@@ -889,7 +889,7 @@ int lxcContainerStart(virDomainDefPtr def,
   char *ttyPath)
 {
 pid_t pid;
-unsigned 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);



-- 
Eric Blake   ebl...@redhat.com+1-801-349-2682
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCHv2 10/27] lxc: reject unknown flags

2011-07-13 Thread Matthias Bolte
2011/7/8 Eric Blake :
> * src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
> (lxcDomainGetMemoryParameters): Reject unknown flags.
> * src/lxc/lxc_container.c (lxcContainerStart): Use unsigned flags.
> ---
>  src/lxc/lxc_container.c |    4 ++--
>  src/lxc/lxc_driver.c    |   12 +---
>  2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index ef8469c..ffa2f34 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -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;
> +    unsigned int flags;

flags is passed to clone that takes int, so rename this to cflags (in
line with oflags and fflags) and keep it as int.

ACK, with the clone flags as int.

-- 
Matthias Bolte
http://photron.blogspot.com

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCHv2 10/27] lxc: reject unknown flags

2011-07-08 Thread Eric Blake
* src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
(lxcDomainGetMemoryParameters): Reject unknown flags.
* src/lxc/lxc_container.c (lxcContainerStart): Use unsigned flags.
---
 src/lxc/lxc_container.c |4 ++--
 src/lxc/lxc_driver.c|   12 +---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index ef8469c..ffa2f34 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -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;
+unsigned int flags;
 int stacksize = getpagesize() * 4;
 char *stack, *stacktop;
 lxc_child_argv_t args = { def, nveths, veths, control, ttyPath,
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 799a5e7..4624e21 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -110,8 +110,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)
@@ -746,7 +748,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;
@@ -754,6 +756,8 @@ static int lxcDomainSetMemoryParameters(virDomainPtr dom,
 virDomainObjPtr vm = NULL;
 int ret = -1;

+virCheckFlags(0, -1);
+
 lxcDriverLock(driver);
 vm = virDomainFindByUUID(&driver->domains, dom->uuid);

@@ -843,7 +847,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;
@@ -853,6 +857,8 @@ static int lxcDomainGetMemoryParameters(virDomainPtr dom,
 int ret = -1;
 int rc;

+virCheckFlags(0, -1);
+
 lxcDriverLock(driver);
 vm = virDomainFindByUUID(&driver->domains, dom->uuid);

-- 
1.7.4.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list