qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] qemu-img:report size overflow error message


From: li guang
Subject: Re: [Qemu-devel] [PATCH 2/2] qemu-img:report size overflow error message
Date: Mon, 17 Dec 2012 08:34:52 +0800

在 2012-12-14五的 13:19 +0100,Markus Armbruster写道:
> liguang <address@hidden> writes:
> 
> > qemu-img will complain when qcow or qcow2
> > size overflow for 64 bits, report the right
> > message in this condition.
> >
> > before change:
> > qemu-img: Invalid image size specified! You may use k, M, G or T suffixes 
> > for
> > qemu-img: kilobytes, megabytes, gigabytes and terabytes.
> >
> > after change:
> > qemu-img: Image size must be less than 8 exabytes!
> >
> > Signed-off-by: liguang <address@hidden>
> > ---
> >  qemu-img.c |    7 ++++++-
> >  1 files changed, 6 insertions(+), 1 deletions(-)
> >
> > diff --git a/qemu-img.c b/qemu-img.c
> > index e29e01b..1c3af67 100644
> > --- a/qemu-img.c
> > +++ b/qemu-img.c
> > @@ -346,13 +346,18 @@ static int img_create(int argc, char **argv)
> >          int64_t sval;
> >          char *end;
> >          sval = strtosz_suffix(argv[optind++], &end, STRTOSZ_DEFSUFFIX_B);
> > -        if (sval < 0 || *end) {
> > +        if (sval == EINVAL || *end) {
> >              error_report("Invalid image size specified! You may use k, M, 
> > G or "
> >                    "T suffixes for ");
> >              error_report("kilobytes, megabytes, gigabytes and terabytes.");
> >              ret = -1;
> >              goto out;
> >          }
> > +        if (sval == ERANGE) {
> > +            error_report("Image size must be less than 8 exabytes!");
> > +            ret = -1;
> > +            goto out;
> > +        }
> >          img_size = (uint64_t)sval;
> >      }
> 
> If strtosz_suffix() ever acquires additional error codes, this caller
> will fail to detect the failure.  Try something like
> 
>         if (sval < 0 || *end) {
>             if (sval == -ERANGE) {
>                 error_report("Image size must be less than 8 exabytes!");
>             } else {
>                 error_report("Invalid image size specified!"
>                       " You may use k, M, G or T suffixes for");
>                 error_report("kilobytes, megabytes, gigabytes and 
> terabytes.");
>             }
>             ret = -1;
>             goto out;
>         }
> 
> To be pedantically correct, "8 exabytes" should be "8 Exbibytes" or "8
> EiB".

yes, it's better.
Thanks!

-- 
regards!
li guang




reply via email to

[Prev in Thread] Current Thread [Next in Thread]