From 3b0995cb4997c948833558888e5e8b750c910a58 Mon Sep 17 00:00:00 2001 From: Johannes Schlatow Date: Tue, 24 May 2022 13:56:11 +0200 Subject: [PATCH] platform_drv: fix uncaught exception Calling alloc_dma_buffer() with size=0 will cause an exception in the ram allocator. genodelabs/genode#4518 --- repos/os/src/drivers/platform/session_component.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/repos/os/src/drivers/platform/session_component.cc b/repos/os/src/drivers/platform/session_component.cc index 5931f7293e..cefc1ad5da 100644 --- a/repos/os/src/drivers/platform/session_component.cc +++ b/repos/os/src/drivers/platform/session_component.cc @@ -177,7 +177,11 @@ void Session_component::release_device(Capability de Genode::Ram_dataspace_capability Session_component::alloc_dma_buffer(size_t const size, Cache cache) { - Ram_dataspace_capability ram_cap = _env_ram.alloc(size, cache); + Ram_dataspace_capability ram_cap { }; + + try { + ram_cap = _env_ram.alloc(size, cache); + } catch (Ram_allocator::Denied) { } if (!ram_cap.valid()) return ram_cap;