diff --git a/make-reserve_diskspace-do-nothing-for-flattened-form.patch b/make-reserve_diskspace-do-nothing-for-flattened-form.patch new file mode 100644 index 0000000..2e636db --- /dev/null +++ b/make-reserve_diskspace-do-nothing-for-flattened-form.patch @@ -0,0 +1,42 @@ +From: Jiri Bohac +Subject: make reserve_diskspace do nothing for flattened format +Git-commit: 0bcf67df2114ee932af7e0af3ccafa0b349e90c1 +References: bsc#1226183 +Acked-by: Jiri Bohac + +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 + diff --git a/makedumpfile.changes b/makedumpfile.changes index f9037fc..4e29fb1 100644 --- a/makedumpfile.changes +++ b/makedumpfile.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 9 14:51:00 UTC 2024 - Jiri Bohac + +- add (bsc#1226183) + * make-reserve_diskspace-do-nothing-for-flattened-form.patch + ------------------------------------------------------------------- Thu Aug 1 06:57:56 UTC 2024 - Jiri Slaby diff --git a/makedumpfile.spec b/makedumpfile.spec index 6b39adb..4c26119 100644 --- a/makedumpfile.spec +++ b/makedumpfile.spec @@ -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