From 5e0d4676e4503f7d0b650c99fc6af465fadc20d3 Mon Sep 17 00:00:00 2001 From: DH Date: Tue, 8 Aug 2023 01:09:43 +0300 Subject: [PATCH] [rpcsx-os] linker: report error on unsupported self segments --- rpcsx-os/linker.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rpcsx-os/linker.cpp b/rpcsx-os/linker.cpp index fc4dc60af..0189bbb63 100644 --- a/rpcsx-os/linker.cpp +++ b/rpcsx-os/linker.cpp @@ -71,6 +71,12 @@ static std::vector unself(const std::byte *image, std::size_t size) { for (std::size_t i = 0; i < header->segmentCount; ++i) { auto &segment = segments[i]; + if ((segment.flags & 0x7fb) != 0 || + segment.decryptedSize != segment.encryptedSize) { + std::fprintf(stderr, "Unsupported self segment (%lx)\n", segment.flags); + std::abort(); + } + if (~segment.flags & 0x800) { continue; }