[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 13/14] qga: Fix qmp_guest_get_memory_blocks() error handling
From: |
Markus Armbruster |
Subject: |
[PATCH v2 13/14] qga: Fix qmp_guest_get_memory_blocks() error handling |
Date: |
Wed, 22 Apr 2020 15:07:18 +0200 |
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 <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
qga/commands-posix.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index a52af0315f..ae1348dc8f 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -2518,6 +2518,9 @@ GuestMemoryBlockList *qmp_guest_get_memory_blocks(Error
**errp)
mem_blk->phys_index = strtoul(&de->d_name[6], NULL, 10);
mem_blk->has_can_offline = true; /* lolspeak ftw */
transfer_memory_block(mem_blk, true, NULL, &local_err);
+ if (local_err) {
+ break;
+ }
entry = g_malloc0(sizeof *entry);
entry->value = mem_blk;
--
2.21.1
[PATCH v2 06/14] fdc: Fix fallback=auto error handling, Markus Armbruster, 2020/04/22
[PATCH v2 03/14] cpus: Fix configure_icount() error API violation, Markus Armbruster, 2020/04/22
[PATCH v2 10/14] io: Fix qio_channel_socket_close() error handling, Markus Armbruster, 2020/04/22
[PATCH v2 11/14] migration/colo: Fix qmp_xen_colo_do_checkpoint() error handling, Markus Armbruster, 2020/04/22
[PATCH v2 07/14] bochs-display: Fix vgamem=SIZE error handling, Markus Armbruster, 2020/04/22
[PATCH v2 13/14] qga: Fix qmp_guest_get_memory_blocks() error handling,
Markus Armbruster <=
[PATCH v2 08/14] virtio-net: Fix duplex=... and speed=... error handling, Markus Armbruster, 2020/04/22
[PATCH v2 02/14] block/file-posix: Fix check_cache_dropped() error handling, Markus Armbruster, 2020/04/22
[PATCH v2 04/14] cpus: Proper range-checking for -icount shift=N, Markus Armbruster, 2020/04/22
[PATCH v2 09/14] xen/pt: Fix flawed conversion to realize(), Markus Armbruster, 2020/04/22
[PATCH v2 14/14] qga: Fix qmp_guest_suspend_{disk, ram}() error handling, Markus Armbruster, 2020/04/22