On Sun, May 08, 2016 at 07:27:13PM +0000, Fabien Siron wrote:
> Hi everyone,
> 
> The following patch moves all the validations of the start command in
> start_vm() as suggested in the comment.
> 
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/vmctl/main.c,v
> retrieving revision 1.16
> diff -u -p -r1.16 main.c
> --- main.c    25 Apr 2016 15:14:34 -0000      1.16
> +++ main.c    8 May 2016 19:23:20 -0000
> @@ -188,20 +188,6 @@ vmmaction(struct parse_result *res)
>  
>       switch (res->action) {
>       case CMD_START:
> -             /* XXX validation should be done in start_vm() */
> -             if (res->size < 1)
> -                     errx(1, "specified memory size too small");
> -             if (res->path == NULL)
> -                     errx(1, "no kernel specified");
> -             if (res->ndisks > VMM_MAX_DISKS_PER_VM)
> -                     errx(1, "too many disks");
> -             else if (res->ndisks == 0)
> -                     warnx("starting without disks");
> -             if (res->nifs == -1)
> -                     res->nifs = 0;
> -             if (res->nifs == 0)
> -                     warnx("starting without network interfaces");
> -
>               ret = start_vm(res->name, res->size, res->nifs,
>                   res->ndisks, res->disks, res->path);
>               if (ret) {
> Index: vmctl.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/vmctl/vmctl.c,v
> retrieving revision 1.13
> diff -u -p -r1.13 vmctl.c
> --- vmctl.c   13 Mar 2016 13:11:47 -0000      1.13
> +++ vmctl.c   8 May 2016 19:23:21 -0000
> @@ -67,6 +67,19 @@ start_vm(const char *name, int memsize, 
>       struct vm_create_params *vcp;
>       int i;
>  
> +     if (memsize < 1)
> +             errx(1, "specified memory size too small");
> +     if (kernel == NULL)
> +             errx(1, "no kernel specified");
> +     if (ndisks > VMM_MAX_DISKS_PER_VM)
> +             errx(1, "too many disks");
> +     else if (ndisks == 0)
> +             warnx("stating without disks");
> +     if (nnics == -1)
> +             nnics = 0;
> +     if (nnics == 0)
> +             warnx("starting without network interfaces");
> +
>       vcp = malloc(sizeof(struct vm_create_params));
>       if (vcp == NULL)
>               return (ENOMEM);
> 
> ---
> Regards,
> Fabien Siron
> 

committed, thanks. (with the spelling error fixed)

Reply via email to