From 7c17b25fa460b030b0f566847d26f54d3c74c9dc Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 22 May 2026 04:36:15 +0200 Subject: [PATCH] pe-binary: tweak pe_read_section_data() error codes Let's return -EBADMSG if the PE headers reference stuff missing in the file, regardless if that's because the offsets are larger than SSIZE_MAX or just larger than the file size. We generally use EBADMSG for all cases we deem the file to not be a conformant PE file, and these two cases are the same. Hence, let's be systematic here. --- src/shared/pe-binary.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/pe-binary.c b/src/shared/pe-binary.c index 2f7764c139..12abc1f3bf 100644 --- a/src/shared/pe-binary.c +++ b/src/shared/pe-binary.c @@ -200,7 +200,7 @@ int pe_read_section_data( size_t n = le32toh(section->VirtualSize); if (n > MIN(max_size, (size_t) SSIZE_MAX)) - return -E2BIG; + return -EBADMSG; _cleanup_free_ void *data = malloc(n+1); if (!data) @@ -210,7 +210,7 @@ int pe_read_section_data( if (ss < 0) return -errno; if ((size_t) ss != n) - return -EIO; + return -EBADMSG; if (ret_size) *ret_size = n;