From ccb2507ac3945934da1e4ccba24e90ce6b550618 Mon Sep 17 00:00:00 2001 From: Oskari Alaranta Date: Sat, 21 Feb 2026 17:15:02 +0200 Subject: [PATCH] Don't crash on failed Shm mapping --- xbanan/ExtSHM.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/xbanan/ExtSHM.cpp b/xbanan/ExtSHM.cpp index 656011b..b086694 100644 --- a/xbanan/ExtSHM.cpp +++ b/xbanan/ExtSHM.cpp @@ -101,7 +101,19 @@ static BAN::ErrorOr extension_shm(Client& client_info, BAN::ConstByteSpan dprintln(" readOnly: {}", request.readOnly); void* addr = shmat(request.shmid, nullptr, request.readOnly ? SHM_RDONLY : 0); - ASSERT(addr != (void*)-1); + if (addr == (void*)-1) + { + xError error { + .type = X_Error, + .errorCode = static_cast(s_shm_error_base + BadShmSeg), + .sequenceNumber = client_info.sequence, + .resourceID = request.shmseg, + .minorCode = op_minor, + .majorCode = op_major, + }; + TRY(encode(client_info.output_buffer, error)); + return {}; + } TRY(client_info.objects.insert(request.shmseg)); TRY(g_objects.insert(