Skip to content
  • Markus Armbruster's avatar
    4155c998
    qga: Fix qmp_guest_get_memory_blocks() error handling · 4155c998
    Markus Armbruster authored
    
    
    The Error ** argument must be NULL, &error_abort, &error_fatal, or a
    pointer to a variable containing NULL.  Passing an argument of the
    latter kind twice without clearing it in between is wrong: if the
    first call sets an error, it no longer points to NULL for the second
    call.
    
    qmp_guest_get_memory_blocks() passes &local_err to
    transfer_memory_block() in a loop.  If this fails in more than one
    iteration, it can trip error_setv()'s assertion.
    
    Fix it to break the loop.
    
    Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20200422130719.28225-14-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    4155c998
    qga: Fix qmp_guest_get_memory_blocks() error handling
    Markus Armbruster authored
    
    
    The Error ** argument must be NULL, &error_abort, &error_fatal, or a
    pointer to a variable containing NULL.  Passing an argument of the
    latter kind twice without clearing it in between is wrong: if the
    first call sets an error, it no longer points to NULL for the second
    call.
    
    qmp_guest_get_memory_blocks() passes &local_err to
    transfer_memory_block() in a loop.  If this fails in more than one
    iteration, it can trip error_setv()'s assertion.
    
    Fix it to break the loop.
    
    Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20200422130719.28225-14-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Loading