mirror of
https://github.com/mhx/dwarfs.git
synced 2025-08-03 17:56:12 -04:00
chore(fs_section): add more info to section header error messages
This commit is contained in:
parent
d3cbb57a02
commit
5fb5ebf71b
@ -47,7 +47,9 @@ template <typename T>
|
|||||||
void read_section_header_common(T& header, size_t& start, mmif const& mm,
|
void read_section_header_common(T& header, size_t& start, mmif const& mm,
|
||||||
size_t offset) {
|
size_t offset) {
|
||||||
if (offset + sizeof(T) > mm.size()) {
|
if (offset + sizeof(T) > mm.size()) {
|
||||||
DWARFS_THROW(runtime_error, "truncated section header");
|
DWARFS_THROW(runtime_error,
|
||||||
|
fmt::format("truncated section header: {} + {} > {}", offset,
|
||||||
|
sizeof(T), mm.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
::memcpy(&header, mm.as<void>(offset), sizeof(T));
|
::memcpy(&header, mm.as<void>(offset), sizeof(T));
|
||||||
@ -57,11 +59,13 @@ void read_section_header_common(T& header, size_t& start, mmif const& mm,
|
|||||||
auto end = offset + header.length;
|
auto end = offset + header.length;
|
||||||
|
|
||||||
if (end < offset) {
|
if (end < offset) {
|
||||||
DWARFS_THROW(runtime_error, "offset/length overflow");
|
DWARFS_THROW(runtime_error,
|
||||||
|
fmt::format("offset/length overflow: {} < {}", end, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end > mm.size()) {
|
if (end > mm.size()) {
|
||||||
DWARFS_THROW(runtime_error, "truncated section data");
|
DWARFS_THROW(runtime_error, fmt::format("truncated section data: {} > {}",
|
||||||
|
end, mm.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
start = offset;
|
start = offset;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user