diff --git a/packages/genodelabs/patches/cached_fs_rom.patch b/packages/genodelabs/patches/cached_fs_rom.patch index 959f14b..ea99a93 100644 --- a/packages/genodelabs/patches/cached_fs_rom.patch +++ b/packages/genodelabs/patches/cached_fs_rom.patch @@ -1,7 +1,7 @@ -From e65583c3e9cf0e9c326bb2d414d40fa32f64f9c6 Mon Sep 17 00:00:00 2001 +From c82e375d1be5789abe830097b315cf07d3debd28 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 3 Nov 2020 15:28:56 +0100 -Subject: [PATCH 1/3] cached_fs_rom: resolve symlinks +Subject: [PATCH 1/5] cached_fs_rom: resolve symlinks Follow symlinks from ROM requests to files. This complicates the implementation but allows ROM requests to be redirected at both the @@ -654,13 +654,13 @@ index 9e4e4d0eee..bac2c075a9 100755 if (stray_pkt) -- -2.28.0 +2.29.2 -From 8e994fdb882071d224b1bb2b6efc711571b523f0 Mon Sep 17 00:00:00 2001 +From 0cf27a3632bc8efe70196d396371712d06803712 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 3 Nov 2020 17:37:50 +0100 -Subject: [PATCH 2/3] cached_fs_rom: add directory session policy +Subject: [PATCH 2/5] cached_fs_rom: add directory session policy Support for directing ROM requests into directories by policy. --- @@ -735,13 +735,13 @@ index bac2c075a9..8df3001111 100755 bool diag = session_diag_from_args(args.string()).enabled; -- -2.28.0 +2.29.2 -From c98ba6fd70938804833e5c65a18d01c60f5be17f Mon Sep 17 00:00:00 2001 +From f053d112495905c973d75988bdbd8b6aa8146ee9 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 5 Nov 2020 21:22:31 +0100 -Subject: [PATCH 3/3] cached_fs_rom: do not apply directory for absolute ROMs +Subject: [PATCH 3/5] cached_fs_rom: do not apply directory for absolute ROMs If the ROM name starts with / then do not apply a directory policy. --- @@ -779,5 +779,56 @@ index 8df3001111..4479b41e87 100755 bool diag = session_diag_from_args(args.string()).enabled; -- -2.28.0 +2.29.2 + + +From 41b272f81805a01d34049351b489d45c422653a8 Mon Sep 17 00:00:00 2001 +From: Emery Hemingway +Date: Sat, 7 Nov 2020 11:40:49 +0100 +Subject: [PATCH 4/5] cached_fs_rom: log request args + +--- + repos/os/src/server/cached_fs_rom/main.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/repos/os/src/server/cached_fs_rom/main.cc b/repos/os/src/server/cached_fs_rom/main.cc +index 4479b41e87..29549b009a 100755 +--- a/repos/os/src/server/cached_fs_rom/main.cc ++++ b/repos/os/src/server/cached_fs_rom/main.cc +@@ -464,6 +464,7 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler + } + + bool diag = session_diag_from_args(args.string()).enabled; ++ if (diag) log("request for ", args); + + /* lookup the ROM in the cache */ + Cached_rom *rom = nullptr; +-- +2.29.2 + + +From 920cc12ad99f0460cdcdcee4fca6d879df362a91 Mon Sep 17 00:00:00 2001 +From: Emery Hemingway +Date: Sun, 6 Dec 2020 19:45:01 +0100 +Subject: [PATCH 5/5] cached_fs_rom: fix off-by-one in symlink copy_cstring + +--- + repos/os/src/server/cached_fs_rom/main.cc | 2 +- + 1 file changed, 1 insertion(+), 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 29549b009a..0919bf6831 100755 +--- a/repos/os/src/server/cached_fs_rom/main.cc ++++ b/repos/os/src/server/cached_fs_rom/main.cc +@@ -345,7 +345,7 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler + } + + char buf[Path::capacity()]; +- copy_cstring(buf, fs.tx()->packet_content(packet), n); ++ copy_cstring(buf, fs.tx()->packet_content(packet), n+1); + if (*buf == '/') + transfer.final_path = Path(buf); + else +-- +2.29.2