pc-dimm: fix error handling in pc_dimm_check_memdev_is_busy()
commitc9f4b77ad5783bd84bca4ab99d4b3d6ee61de01c
authorIgor Mammedov <imammedo@redhat.com>
Tue, 1 Mar 2016 09:40:48 +0000 (1 10:40 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 11 Mar 2016 12:55:15 +0000 (11 14:55 +0200)
treee1d576700ca73345cf37500876c3f3a65047d7bf
parentfff4e48ed54cc39e5942921df91300646ad37707
pc-dimm: fix error handling in pc_dimm_check_memdev_is_busy()

If host_memory_backend_get_memory() were to return error and
NULL MemoryRegion, pc_dimm_check_memdev_is_busy() would crash
dereferencing NULL pointer in memory_region_is_mapped().
But if error is set and non NULL MemoryRegion is returned
then error_setg() will fail with "error already set" assertion
in error_setv()

To avoid above issues use typical error handling pattern
for property setters:

Error *local_error = NULL;
...
error_propagate(errp, local_err);

Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/mem/pc-dimm.c