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>
|
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
|
Patch2: %{name}-PN_XNUM.patch
|
||||||
Patch3: 0001-PATCH-Fix-failure-of-hugetlb-pages-exclusion-on-Linu.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
|
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: libbz2-devel
|
||||||
BuildRequires: libdw-devel
|
BuildRequires: libdw-devel
|
||||||
BuildRequires: libelf-devel
|
BuildRequires: libelf-devel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user