From 23e15cb2abf6eca48a19d75caa255b9a9ca11c87 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Thu, 7 Sep 2017 17:18:27 +0200 Subject: [PATCH] gems: add missing with_libc call in file_terminal Ref #2286 --- repos/gems/src/server/file_terminal/main.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/repos/gems/src/server/file_terminal/main.cc b/repos/gems/src/server/file_terminal/main.cc index 04d4f371e..c573c600f 100644 --- a/repos/gems/src/server/file_terminal/main.cc +++ b/repos/gems/src/server/file_terminal/main.cc @@ -67,7 +67,7 @@ class Open_file Open_file(const char *filename) : _fd(-1) { - _fd = ::open(filename, O_CREAT|O_RDWR); + Libc::with_libc([&] () { _fd = ::open(filename, O_CREAT|O_RDWR); }); if (_fd == -1) ::perror("open"); } @@ -188,10 +188,13 @@ namespace Terminal { /* sanitize argument */ num_bytes = Genode::min(num_bytes, _io_buffer.size()); - /* write data to descriptor */ - ssize_t written_bytes = ::write(fd(), - _io_buffer.local_addr(), - num_bytes); + ssize_t written_bytes = 0; + Libc::with_libc([&] () { + /* write data to descriptor */ + written_bytes = ::write(fd(), + _io_buffer.local_addr(), + num_bytes); + }); if (written_bytes < 0) { Genode::error("write error, dropping data"); @@ -297,4 +300,7 @@ struct Main }; -void Libc::Component::construct(Libc::Env &env) { static Main main(env); } +void Libc::Component::construct(Libc::Env &env) +{ + Libc::with_libc([&] () { static Main main(env); }); +}