2
0
Fork 0

Increase binary labels strings to accomodate store paths

This commit is contained in:
Emery Hemingway 2020-05-29 19:28:54 +05:30
parent 4acaab5244
commit 7dc432ce33
2 changed files with 99 additions and 1 deletions

View File

@ -0,0 +1,98 @@
commit 2d76b3271fa826a97c3974b7e67f2799e9ba448d
Author: Emery Hemingway <ehmry@posteo.net>
Date: Fri May 29 18:42:57 2020 +0530
Use 128-byte strings for session labels
Sixty-four bytes is insufficient for Nix store paths.
diff --git a/repos/base/include/base/child.h b/repos/base/include/base/child.h
index 8c7b33a9d9..3bd6483547 100644
--- a/repos/base/include/base/child.h
+++ b/repos/base/include/base/child.h
@@ -44,9 +44,9 @@ namespace Genode {
*/
struct Genode::Child_policy
{
- typedef String<64> Name;
- typedef String<64> Binary_name;
- typedef String<64> Linker_name;
+ typedef String<128> Name;
+ typedef String<128> Binary_name;
+ typedef String<128> Linker_name;
virtual ~Child_policy() { }
@@ -407,7 +407,7 @@ class Genode::Child : protected Rpc_object<Parent>,
Id_space<Parent::Client>::Id const _client_id;
- typedef String<64> Label;
+ typedef String<128> Label;
Args const _args;
diff --git a/repos/base/include/base/shared_object.h b/repos/base/include/base/shared_object.h
index f4dd1622fe..7ffe5fa34c 100644
--- a/repos/base/include/base/shared_object.h
+++ b/repos/base/include/base/shared_object.h
@@ -128,7 +128,7 @@ class Genode::Dynamic_linker
struct Object_info
{
/* name of shared library, or "binary" for the main program */
- typedef String<64> Name;
+ typedef String<128> Name;
Name name;
Rom_dataspace_capability ds_cap;
diff --git a/repos/base/src/lib/ldso/include/file.h b/repos/base/src/lib/ldso/include/file.h
index a8875a781e..e06749f7ef 100644
--- a/repos/base/src/lib/ldso/include/file.h
+++ b/repos/base/src/lib/ldso/include/file.h
@@ -98,7 +98,7 @@ struct Linker::Elf_file : File
Ram_dataspace_capability ram_cap[Phdr::MAX_PHDR];
bool const loaded;
- typedef String<64> Name;
+ typedef String<128> Name;
Rom_dataspace_capability _rom_dataspace(Name const &name)
{
diff --git a/repos/libports/src/lib/libc/internal/types.h b/repos/libports/src/lib/libc/internal/types.h
index 233da10b47..afaee3f8d7 100644
--- a/repos/libports/src/lib/libc/internal/types.h
+++ b/repos/libports/src/lib/libc/internal/types.h
@@ -23,7 +23,7 @@ namespace Libc {
using namespace Genode;
typedef Genode::uint64_t uint64_t;
- typedef String<64> Binary_name;
+ typedef String<128> Binary_name;
}
#endif /* _LIBC__INTERNAL__TYPES_H_ */
diff --git a/repos/libports/src/lib/libc/kernel.cc b/repos/libports/src/lib/libc/kernel.cc
index 430295e7d5..bdb3c66598 100644
--- a/repos/libports/src/lib/libc/kernel.cc
+++ b/repos/libports/src/lib/libc/kernel.cc
@@ -300,7 +300,7 @@ void Libc::Kernel::_clone_state_from_parent()
/* clone RW segment of a shared library or the binary */
if (node.type() == "rw") {
- typedef String<64> Name;
+ typedef String<128> Name;
Name const name = node.attribute_value("name", Name());
/*
diff --git a/repos/os/src/lib/sandbox/child.h b/repos/os/src/lib/sandbox/child.h
index 030ccbd66d..5164d33ba5 100644
--- a/repos/os/src/lib/sandbox/child.h
+++ b/repos/os/src/lib/sandbox/child.h
@@ -119,7 +119,6 @@ class Sandbox::Child : Child_policy, Routed_service::Wakeup
throw Missing_name_attribute();
}
- typedef String<64> Name;
Name const _unique_name { _name_from_xml(_start_node->xml()) };
static Binary_name _binary_from_xml(Xml_node start_node,

View File

@ -26,7 +26,7 @@ let
hash = "sha256-5Fd8ywGbDtQF+9yDZ5xAQ7l1Vzh1jQAQeqVj+EtO1us=";
};
nativeBuildInputs = [ expect gnumake tcl ];
patches = [ ./LIB.patch ];
patches = [ ./LIB.patch ./binary-labels.patch ];
configurePhase = ''
patchShebangs ./tool
substituteInPlace repos/base/etc/tools.conf \