[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 06/14] linux-user/elfload: Open core file after vma_init
From: |
Richard Henderson |
Subject: |
[PATCH 06/14] linux-user/elfload: Open core file after vma_init |
Date: |
Tue, 27 Feb 2024 08:48:25 -1000 |
Swap the ordering of vma_init and open. This will be necessary
for further changes, and adjusts the error cleanup path. Narrow
the scope of corefile, as the variable can be freed immediately
after use in open().
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/elfload.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 39d9ef9acc..877799e9c7 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -4625,7 +4625,6 @@ static int elf_core_dump(int signr, const CPUArchState
*env)
const CPUState *cpu = env_cpu((CPUArchState *)env);
const TaskState *ts = (const TaskState *)cpu->opaque;
struct vm_area_struct *vma = NULL;
- g_autofree char *corefile = NULL;
struct elf_note_info info;
struct elfhdr elf;
struct elf_phdr phdr;
@@ -4644,12 +4643,6 @@ static int elf_core_dump(int signr, const CPUArchState
*env)
return 0;
}
- corefile = core_dump_filename(ts);
-
- if ((fd = open(corefile, O_WRONLY | O_CREAT,
- S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)) < 0)
- return (-errno);
-
/*
* Walk through target process memory mappings and
* set up structure containing this information. After
@@ -4657,6 +4650,15 @@ static int elf_core_dump(int signr, const CPUArchState
*env)
*/
vma_init(&mm);
+ {
+ g_autofree char *corefile = core_dump_filename(ts);
+ fd = open(corefile, O_WRONLY | O_CREAT,
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+ }
+ if (fd < 0) {
+ goto out;
+ }
+
walk_memory_regions(&mm, vma_walker);
segs = vma_get_mapping_count(&mm);
--
2.34.1
- [PATCH 00/14] linux-user: Rewrite core dump, Richard Henderson, 2024/02/27
- [PATCH 01/14] linux-user/elfload: Disable core dump if getrlimit fails, Richard Henderson, 2024/02/27
- [PATCH 02/14] linux-user/elfload: Merge init_note_info and fill_note_info, Richard Henderson, 2024/02/27
- [PATCH 03/14] linux-user/elfload: Tidy fill_note_info and struct elf_note_info, Richard Henderson, 2024/02/27
- [PATCH 05/14] linux-user/elfload: Latch errno before cleanup in elf_core_dump, Richard Henderson, 2024/02/27
- [PATCH 04/14] linux-user/elfload: Stack allocate struct mm_struct, Richard Henderson, 2024/02/27
- [PATCH 06/14] linux-user/elfload: Open core file after vma_init,
Richard Henderson <=
- [PATCH 07/14] linux-user/elfload: Truncate core file on open, Richard Henderson, 2024/02/27
- [PATCH 08/14] linux-user/elfload: Lock cpu list and mmap during elf_core_dump, Richard Henderson, 2024/02/27
- [PATCH 09/14] linux-user/elfload: Size corefile before opening, Richard Henderson, 2024/02/27
- [PATCH 10/14] linux-user/elfload: Write corefile elf header in one block, Richard Henderson, 2024/02/27
- [PATCH 11/14] linux-user/elfload: Write process memory to core file in larger chunks, Richard Henderson, 2024/02/27
- [PATCH 12/14] linux-user/elfload: Simplify vma_dump_size, Richard Henderson, 2024/02/27
- [PATCH 13/14] linux-user/elfload: Rely on walk_memory_regions for vmas, Richard Henderson, 2024/02/27
- [PATCH 14/14] linux-user/elfload: Unprotect regions before core dump, Richard Henderson, 2024/02/27