From a888041ba478b3f993db5a7eab50521917b7234b Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 31 Jan 2020 14:33:44 +0100 Subject: [PATCH] cached_fs_rom: fix file-handle leak Fixes #3634 --- repos/os/src/server/cached_fs_rom/main.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/os/src/server/cached_fs_rom/main.cc b/repos/os/src/server/cached_fs_rom/main.cc index a60300a725..392ff8aecb 100755 --- a/repos/os/src/server/cached_fs_rom/main.cc +++ b/repos/os/src/server/cached_fs_rom/main.cc @@ -399,9 +399,12 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler } else if (!rom->transfer) { File_system::File_handle handle = try_open(path); - try { new (heap) Transfer(transfers, *rom, fs, handle, rom->file_size); } + try { + new (heap) Transfer(transfers, *rom, fs, handle, rom->file_size); + } catch (...) { Genode::warning("defer transfer of ", rom->path); + fs.close(handle); /* retry when next pending transfer completes */ return; }