Accepting request 1193375 from Kernel:kdump
OBS-URL: https://build.opensuse.org/request/show/1193375 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/makedumpfile?expand=0&rev=94
This commit is contained in:
commit
8e8650a480
42
make-reserve_diskspace-do-nothing-for-flattened-form.patch
Normal file
42
make-reserve_diskspace-do-nothing-for-flattened-form.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From: Jiri Bohac <jbohac@suse.cz>
|
||||
Subject: make reserve_diskspace do nothing for flattened format
|
||||
Git-commit: 0bcf67df2114ee932af7e0af3ccafa0b349e90c1
|
||||
References: bsc#1226183
|
||||
Acked-by: Jiri Bohac <jbohac@suse.cz>
|
||||
|
||||
reserve_diskspace() is called by write_elf_header() to make sure there is
|
||||
always space to write the program header, even if writing other data fails
|
||||
because of ENOSPC.
|
||||
|
||||
This is harmful when writing the flattened format to STDOUT for two reasons:
|
||||
|
||||
First, it actually wastes disk space, because first the block of zeroes is sent
|
||||
to STDOUT by reserve_diskspace() and then the actual program header is sent,
|
||||
meant to overwrite the zeroes when the flattened format is rearranged.
|
||||
|
||||
Second, the algorithm used to read flattened format directly by the crash
|
||||
program does not cope with the flattened file containing two chunks meant for
|
||||
the same offset. It uses a binary search on a sorted array of flat_data headers
|
||||
to find the data in the flat file. It may return the zeroed chunk written by
|
||||
reserve_diskspace() near the beginning of the file instead of the actual ELF
|
||||
header located near the end of the flattened file.
|
||||
|
||||
Fixes: e39216fce9f73759509ec158e39c289e6c211125 ("Make the incomplete dumpfile generated by ENOSPC error analyzable.")
|
||||
|
||||
diff --git a/makedumpfile.c b/makedumpfile.c
|
||||
index cadc596..9624c3f 100644
|
||||
--- a/makedumpfile.c
|
||||
+++ b/makedumpfile.c
|
||||
@@ -5206,6 +5206,9 @@ reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
|
||||
|
||||
int ret = FALSE;
|
||||
|
||||
+ if (info->flag_flatten)
|
||||
+ return TRUE;
|
||||
+
|
||||
assert(start_offset < end_offset);
|
||||
buf_size = end_offset - start_offset;
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 9 14:51:00 UTC 2024 - Jiri Bohac <jbohac@suse.com>
|
||||
|
||||
- add (bsc#1226183)
|
||||
* make-reserve_diskspace-do-nothing-for-flattened-form.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 1 06:57:56 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
|
||||
|
||||
|
@ -42,6 +42,7 @@ Patch1: %{name}-ppc64-VA-range-SUSE.patch
|
||||
Patch2: %{name}-PN_XNUM.patch
|
||||
Patch3: 0001-PATCH-Fix-failure-of-hugetlb-pages-exclusion-on-Linu.patch
|
||||
Patch4: 0002-PATCH-Fix-wrong-exclusion-of-Slab-pages-on-Linux-6.1.patch
|
||||
Patch5: make-reserve_diskspace-do-nothing-for-flattened-form.patch
|
||||
BuildRequires: libbz2-devel
|
||||
BuildRequires: libdw-devel
|
||||
BuildRequires: libelf-devel
|
||||
|
Loading…
x
Reference in New Issue
Block a user