Dominique Leuenberger 2024-08-13 11:22:18 +00:00 committed by Git OBS Bridge
commit 8e8650a480
3 changed files with 49 additions and 0 deletions

View 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

View File

@ -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>

View File

@ -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