On Mon, 28 Apr 2014 13:53:49 +0800 Amos Kong <ak...@redhat.com> wrote:
> strtosz_suffix() might return negative error, this patch fixes > the error handling. > > This patch also changes to handle error in the if statement > rather than handle success specially, this will make this use > of strtosz_suffix consistent with all other uses. > > Signed-off-by: Amos Kong <ak...@redhat.com> > Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Applied to the qmp branch, thanks. > --- > qapi/opts-visitor.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/qapi/opts-visitor.c b/qapi/opts-visitor.c > index 5d830a2..87c1c78 100644 > --- a/qapi/opts-visitor.c > +++ b/qapi/opts-visitor.c > @@ -472,13 +472,14 @@ opts_type_size(Visitor *v, uint64_t *obj, const char > *name, Error **errp) > > val = strtosz_suffix(opt->str ? opt->str : "", &endptr, > STRTOSZ_DEFSUFFIX_B); > - if (val != -1 && *endptr == '\0') { > - *obj = val; > - processed(ov, name); > + if (val < 0 || *endptr) { > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, opt->name, > + "a size value representible as a non-negative int64"); > return; > } > - error_set(errp, QERR_INVALID_PARAMETER_VALUE, opt->name, > - "a size value representible as a non-negative int64"); > + > + *obj = val; > + processed(ov, name); > } > >