On 04/25/2014 09:05 AM, Markus Armbruster wrote:
> Using error_is_set(errp) to check whether a function call failed is
> fragile: it breaks when errp is null.  I'm not aware of actual
> breakage, but checking return values instead when convenient is more
> robust and more obviously correct.
> 
> Signed-off-by: Markus Armbruster <arm...@redhat.com>
> ---
>  qga/commands-posix.c | 6 +++---
>  qga/main.c           | 1 +
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
> index f6af7d1..6af974f 100644
> --- a/qga/commands-posix.c
> +++ b/qga/commands-posix.c
> @@ -223,8 +223,8 @@ static int64_t guest_file_handle_add(FILE *fh, Error 
> **errp)
>      int64_t handle;
>  
>      handle = ga_get_fd_handle(ga_state, errp);
> -    if (error_is_set(errp)) {
> -        return 0;
> +    if (handle < 0) {
> +        return -1;

Is this a bug fix that should be pushed separately, or at least called
out in the commit message as intentional?

> +++ b/qga/main.c
> @@ -910,6 +910,7 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp)
>  
>      if (!write_persistent_state(&s->pstate, s->pstate_filepath)) {
>          error_setg(errp, "failed to commit persistent state to disk");
> +        return -1;
>      }

Same here.

>  
>      return handle;
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to