2
0
Fork 0

cached_fs_rom: fix off-by-one in symlink copy_cstring

This commit is contained in:
Emery Hemingway 2020-12-06 19:52:20 +01:00
parent 9c2a92cdf1
commit 74b4c0df69
1 changed files with 60 additions and 9 deletions

View File

@ -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 <ehmry@posteo.net>
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 <ehmry@posteo.net>
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 <ehmry@posteo.net>
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 <ehmry@posteo.net>
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 <ehmry@posteo.net>
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