From 01e8f7ea3dba66af2018d304385717e961a58342 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 13 Apr 2017 10:53:47 -0500 Subject: [PATCH] libc: do not open stdio descriptors unless configured to do so Fix #2396 --- repos/libports/src/lib/libc/vfs_plugin.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/repos/libports/src/lib/libc/vfs_plugin.h b/repos/libports/src/lib/libc/vfs_plugin.h index 082176a896..bb4acf9ca6 100644 --- a/repos/libports/src/lib/libc/vfs_plugin.h +++ b/repos/libports/src/lib/libc/vfs_plugin.h @@ -82,17 +82,19 @@ class Libc::Vfs_plugin : public Libc::Plugin if (_root_dir.num_dirent("/")) env.config([&] (Xml_node const &top) { - Xml_node const node = top.sub_node("libc"); - try { - Genode::String path; - node.attribute("cwd").value(&path); - chdir(path.string()); - } catch (Xml_node::Nonexistent_attribute) { } + Xml_node const node = top.sub_node("libc"); - _open_stdio(node, "stdin", 0, O_RDONLY); - _open_stdio(node, "stdout", 1, O_WRONLY); - _open_stdio(node, "stderr", 2, O_WRONLY); + try { + Genode::String path; + node.attribute("cwd").value(&path); + chdir(path.string()); + } catch (Xml_node::Nonexistent_attribute) { } + + _open_stdio(node, "stdin", 0, O_RDONLY); + _open_stdio(node, "stdout", 1, O_WRONLY); + _open_stdio(node, "stderr", 2, O_WRONLY); + } catch (Xml_node::Nonexistent_sub_node) { } }); }