diff --git a/repos/base/include/log_session/log_session.h b/repos/base/include/log_session/log_session.h index 45fe8460de..0a57d69e4f 100644 --- a/repos/base/include/log_session/log_session.h +++ b/repos/base/include/log_session/log_session.h @@ -28,7 +28,10 @@ struct Genode::Log_session : Session virtual ~Log_session() { } - typedef Rpc_in_buffer<256> String; + /* the lowest platform-specific maximum IPC payload size (OKL4) */ + enum { MAX_STRING_LEN = 236}; + + typedef Rpc_in_buffer String; /** * Output null-terminated string diff --git a/repos/base/src/base/console/log_console.cc b/repos/base/src/base/console/log_console.cc index e14c7d7ab4..b4271a5b5a 100644 --- a/repos/base/src/base/console/log_console.cc +++ b/repos/base/src/base/console/log_console.cc @@ -27,7 +27,7 @@ class Log_console : public Console { private: - enum { _BUF_SIZE = 216 }; + enum { _BUF_SIZE = Log_session::MAX_STRING_LEN }; Log_connection _log; char _buf[_BUF_SIZE]; diff --git a/repos/os/include/vfs/log_file_system.h b/repos/os/include/vfs/log_file_system.h index 405a46d826..656c389137 100644 --- a/repos/os/include/vfs/log_file_system.h +++ b/repos/os/include/vfs/log_file_system.h @@ -47,7 +47,7 @@ class Vfs::Log_file_system : public Single_file_system /* count does not include the trailing '\0' */ while (count > 0) { - char tmp[256]; + char tmp[Genode::Log_session::MAX_STRING_LEN]; int const curr_count = min(count, sizeof(tmp) - 1); memcpy(tmp, src, curr_count); tmp[curr_count > 0 ? curr_count : 0] = 0;