[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xen-cvs
Subject:    [Xen-changelog] [xen staging] tools/ocaml: Dup2 /dev/null to stdin in daemonize()
From:       patchbot () xen ! org
Date:       2019-02-28 11:55:25
Message-ID: E1gzKHd-0000oo-1y () xenbits ! xenproject ! org
[Download RAW message or body]

commit 677e64dbe315343620c3b266e9eb16623b118038
Author:     Christian Lindig <christian.lindig@citrix.com>
AuthorDate: Wed Feb 27 10:33:42 2019 +0000
Commit:     Andrew Cooper <andrew.cooper3@citrix.com>
CommitDate: Thu Feb 28 11:16:27 2019 +0000

    tools/ocaml: Dup2 /dev/null to stdin in daemonize()
    
    Don't close stdin in daemonize() but dup2 /dev/null instead.  Otherwise, fd 0
    gets reused later:
    
      [root@idol ~]# ls -lav /proc/`pgrep xenstored`/fd
      total 0
      dr-x------ 2 root root  0 Feb 28 11:02 .
      dr-xr-xr-x 9 root root  0 Feb 27 15:59 ..
      lrwx------ 1 root root 64 Feb 28 11:02 0 -> /dev/xen/evtchn
      l-wx------ 1 root root 64 Feb 28 11:02 1 -> /dev/null
      l-wx------ 1 root root 64 Feb 28 11:02 2 -> /dev/null
      lrwx------ 1 root root 64 Feb 28 11:02 3 -> /dev/xen/privcmd
      ...
    
    Signed-off-by: Christian Lindig <christian.lindig@citrix.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Acked-by: Wei Liu <wei.liu2@citrix.com>
    Release-acked-by: Juergen Gross <jgross@suse.com>
---
 tools/ocaml/xenstored/stdext.ml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/ocaml/xenstored/stdext.ml b/tools/ocaml/xenstored/stdext.ml
index 879565c515..4f2f3a2c8c 100644
--- a/tools/ocaml/xenstored/stdext.ml
+++ b/tools/ocaml/xenstored/stdext.ml
@@ -100,9 +100,9 @@ let daemonize () =
 
 		begin match Unix.fork () with
 		| 0 ->
-			let nullfd = Unix.openfile "/dev/null" [ Unix.O_WRONLY ] 0 in
+			let nullfd = Unix.openfile "/dev/null" [ Unix.O_RDWR ] 0 in
 			begin try
-				Unix.close Unix.stdin;
+				Unix.dup2 nullfd Unix.stdin;
 				Unix.dup2 nullfd Unix.stdout;
 				Unix.dup2 nullfd Unix.stderr;
 			with exn -> Unix.close nullfd; raise exn
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xenproject.org
https://lists.xenproject.org/xen-changelog
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic