[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/21] exec: Fix latent file_ram_alloc() error handling bug
From: |
Markus Armbruster |
Subject: |
[PATCH 08/21] exec: Fix latent file_ram_alloc() error handling bug |
Date: |
Sat, 30 Nov 2019 20:42:27 +0100 |
When os_mem_prealloc() fails, file_ram_alloc() calls qemu_ram_munmap()
and returns null. Except it doesn't when its @errp argument is null,
because it checks for failure with (errp && *errp). Messed up in
commit 056b68af77 "fix qemu exit on memory hotplug when allocation
fails at prealloc time".
The bug can't bite as no caller actually passes null. Fix it anyway.
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
exec.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/exec.c b/exec.c
index ffdb518535..45695a5f2d 100644
--- a/exec.c
+++ b/exec.c
@@ -1841,6 +1841,7 @@ static void *file_ram_alloc(RAMBlock *block,
bool truncate,
Error **errp)
{
+ Error *err = NULL;
MachineState *ms = MACHINE(qdev_get_machine());
void *area;
@@ -1898,8 +1899,9 @@ static void *file_ram_alloc(RAMBlock *block,
}
if (mem_prealloc) {
- os_mem_prealloc(fd, area, memory, ms->smp.cpus, errp);
- if (errp && *errp) {
+ os_mem_prealloc(fd, area, memory, ms->smp.cpus, &err);
+ if (err) {
+ error_propagate(errp, err);
qemu_ram_munmap(fd, area, memory);
return NULL;
}
--
2.21.0
- [PATCH 00/21] Error handling fixes, may contain 4.2 material, Markus Armbruster, 2019/11/30
- [PATCH 04/21] crypto: Fix certificate file error handling crash bug, Markus Armbruster, 2019/11/30
- [PATCH 03/21] block/file-posix: Fix laio_init() error handling crash bug, Markus Armbruster, 2019/11/30
- [PATCH 02/21] net/virtio: Fix failover error handling crash bugs, Markus Armbruster, 2019/11/30
- [PATCH 05/21] crypto: Fix typo in QCryptoTLSSession's <example> comment, Markus Armbruster, 2019/11/30
- [PATCH 01/21] net/virtio: Drop useless n->primary_dev not null checks, Markus Armbruster, 2019/11/30
- [PATCH 19/21] error: Clean up unusual names of Error * variables, Markus Armbruster, 2019/11/30
- [PATCH 08/21] exec: Fix latent file_ram_alloc() error handling bug,
Markus Armbruster <=
- [PATCH 06/21] io: Fix Error usage in a comment <example>, Markus Armbruster, 2019/11/30
- [PATCH 16/21] s390/cpu_modules: Fix latent realize() error handling bugs, Markus Armbruster, 2019/11/30
- [PATCH 14/21] s390x/event-facility: Fix latent realize() error handling bug, Markus Armbruster, 2019/11/30
- [PATCH 10/21] hw/core: Fix latent fit_load_fdt() error handling bug, Markus Armbruster, 2019/11/30
- [PATCH 07/21] tests: Clean up initialization of Error *err variables, Markus Armbruster, 2019/11/30
- [PATCH 15/21] s390x/cpu_models: Fix latent feature property error handling bugs, Markus Armbruster, 2019/11/30
- [PATCH 13/21] memory-device: Fix latent memory pre-plug error handling bugs, Markus Armbruster, 2019/11/30
- [PATCH 12/21] qga: Fix latent guest-get-fsinfo error handling bug, Markus Armbruster, 2019/11/30
- [PATCH 18/21] s390x: Fix latent query-cpu-definitions error handling bug, Markus Armbruster, 2019/11/30
- [PATCH 11/21] hw/ipmi: Fix latent realize() error handling bugs, Markus Armbruster, 2019/11/30