diff --git a/repos/ports/src/noux/local_rom_service.h b/repos/ports/src/noux/local_rom_service.h index ce1453531..4a1836724 100644 --- a/repos/ports/src/noux/local_rom_service.h +++ b/repos/ports/src/noux/local_rom_service.h @@ -48,10 +48,14 @@ namespace Noux { char name[NAME_MAX_LEN]; Arg_string::find_arg(args, "filename").string(name, sizeof(name), ""); - Rom_session_component *rom = new (env()->heap()) - Rom_session_component(_ds_registry, name); + try { + Rom_session_component *rom = new (env()->heap()) + Rom_session_component(_ds_registry, name); - return _ep.manage(rom); + return _ep.manage(rom); + } catch (Rom_connection::Rom_connection_failed) { + throw Service::Unavailable(); + } } void upgrade(Genode::Session_capability, const char *args) { }