chiark / gitweb /
Do not leak a harmless fd into the service program environment
[userv.git] / servexec.c
index 5fa8e1f3787babb29de15abf783a495cfbb4f450..6b55ea7b730c8c287a7cf1e49b1a77307ac3bbf4 100644 (file)
@@ -250,6 +250,7 @@ void execservice(const int synchsocket[], int clientfd) {
   if (r!=1) serv_syscallfail("write synch byte to parent");
   r= synchread(synchsocket[1],'g');
   if (r) serv_syscallfail("reach synch byte from parent");
+  if (close(synchsocket[1])) serv_syscallfail("close our synch socket");
 
   if (close(clientfd)) serv_syscallfail("close client socket fd");