Commit a903f40c authored by Markus Armbruster's avatar Markus Armbruster Committed by Luiz Capitulino
Browse files

qga: Use return values instead of error_is_set(errp)



Using error_is_set(errp) to check whether a function call failed is
fragile: it breaks when errp is null.  ga_get_fd_handle() and
guest_file_handle_add() don't return a useful value when they fail,
but that's just stupid.  Fix that, and check them instead.  As far
as I can tell, errp can't be null there, but this is more robust and
more obviously correct.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent 64dfefed
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
    }

    gfh = g_malloc0(sizeof(GuestFileHandle));
@@ -407,7 +407,7 @@ int64_t qmp_guest_file_open(const char *path, bool has_mode, const char *mode,
    }

    handle = guest_file_handle_add(fh, errp);
    if (error_is_set(errp)) {
    if (handle < 0) {
        fclose(fh);
        return -1;
    }
+1 −0
Original line number Diff line number Diff line
@@ -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;
    }

    return handle;