[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 05/18] exec: Fix file_ram_alloc() error API violations
From: |
Markus Armbruster |
Subject: |
[PATCH v2 05/18] exec: Fix file_ram_alloc() error API violations |
Date: |
Wed, 4 Dec 2019 10:36:12 +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). Introduced in
commit 056b68af77 "fix qemu exit on memory hotplug when allocation
fails at prealloc time".
No caller actually passes null.
Fix anyway: splice in a local Error *err, and error_propagate().
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <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 v2 09/18] qga: Fix guest-get-fsinfo error API violations, (continued)
- [PATCH v2 09/18] qga: Fix guest-get-fsinfo error API violations, Markus Armbruster, 2019/12/04
- [PATCH v2 02/18] crypto: Fix typo in QCryptoTLSSession's <example> comment, Markus Armbruster, 2019/12/04
- [PATCH v2 04/18] tests: Clean up initialization of Error *err variables, Markus Armbruster, 2019/12/04
- [PATCH v2 11/18] s390x/event-facility: Fix realize() error API violations, Markus Armbruster, 2019/12/04
- [PATCH v2 13/18] s390x/cpumodel: Fix realize() error API violations, Markus Armbruster, 2019/12/04
- [PATCH v2 08/18] hw/ipmi: Fix realize() error API violations, Markus Armbruster, 2019/12/04
- [PATCH v2 05/18] exec: Fix file_ram_alloc() error API violations,
Markus Armbruster <=
- [PATCH v2 17/18] hw/intc/s390: Simplify error handling in kvm_s390_flic_realize(), Markus Armbruster, 2019/12/04
- [PATCH v2 01/18] crypto: Fix certificate file error handling crash bug, Markus Armbruster, 2019/12/04
- [PATCH v2 07/18] hw/core: Fix fit_load_fdt() error handling violations, Markus Armbruster, 2019/12/04
- [PATCH v2 03/18] io: Fix Error usage in a comment <example>, Markus Armbruster, 2019/12/04
- [PATCH v2 18/18] tests-blockjob: Use error_free_or_abort(), Markus Armbruster, 2019/12/04
- [PATCH v2 14/18] s390x/cpumodel: Fix query-cpu-model-FOO error API violations, Markus Armbruster, 2019/12/04