diff mbox

[v2] qapi: treat all negative return of strtosz_suffix() as error

Message ID 1398664429-10682-1-git-send-email-akong@redhat.com
State New
Headers show

Commit Message

Amos Kong April 28, 2014, 5:53 a.m. UTC
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 <akong@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
---
 qapi/opts-visitor.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Luiz Capitulino May 5, 2014, 8:10 p.m. UTC | #1
On Mon, 28 Apr 2014 13:53:49 +0800
Amos Kong <akong@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 <akong@redhat.com>
> Reviewed-by: Michael S. Tsirkin <mst@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);
>  }
>  
>
diff mbox

Patch

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);
 }