From 4837fb8f00512bed67f388eafa9e80fad9479fc9 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Thu, 27 Sep 2012 02:06:26 +0200 Subject: [PATCH] vm/file-editor: connect /dev/null as stdin (#657) If stdin is closed (not connected to /dev/null) first opened file will get fd=0 and will be treated as stdin. --- qubes_rpc/vm-file-editor.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qubes_rpc/vm-file-editor.c b/qubes_rpc/vm-file-editor.c index 96c3bd4..4a83785 100644 --- a/qubes_rpc/vm-file-editor.c +++ b/qubes_rpc/vm-file-editor.c @@ -57,7 +57,7 @@ main() { struct stat stat_pre, stat_post, session_stat; char *filename = get_filename(); - int child, status, log_fd; + int child, status, log_fd, null_fd; char var[1024], val[4096]; FILE *env_file; FILE *waiter_pidfile; @@ -100,7 +100,9 @@ main() perror("fork"); exit(1); case 0: - close(0); + null_fd = open("/dev/null", O_RDONLY); + dup2(null_fd, 0); + close(null_fd); env_file = fopen("/tmp/qubes-session-env", "r"); while(fscanf(env_file, "%1024[^=]=%4096[^\n]\n", var, val) == 2) {