Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
makedumpfile.35695
make-reserve_diskspace-do-nothing-for-flattened...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File make-reserve_diskspace-do-nothing-for-flattened-form.patch of Package makedumpfile.35695
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor