Explorar o código

Set close-on-exec in attempt to head off GitHub issue #61

Adam Ierymenko %!s(int64=11) %!d(string=hai) anos
pai
achega
6c5f6feb5e
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      node/UnixEthernetTap.cpp

+ 6 - 0
node/UnixEthernetTap.cpp

@@ -308,6 +308,9 @@ UnixEthernetTap::UnixEthernetTap(
 
 	::close(sock);
 
+	// Set close-on-exec so that devices cannot persist if we fork/exec for update
+	fcntl(_fd,F_SETFD,fcntl(_fd,F_GETFD) | FD_CLOEXEC);
+
 	::pipe(_shutdownSignalPipe);
 
 	TRACE("tap %s created",_dev.c_str());
@@ -418,6 +421,9 @@ UnixEthernetTap::UnixEthernetTap(
 
 	_setIpv6Stuff(_dev.c_str(),true,false);
 
+	// Set close-on-exec so that devices cannot persist if we fork/exec for update
+	fcntl(_fd,F_SETFD,fcntl(_fd,F_GETFD) | FD_CLOEXEC);
+
 	::pipe(_shutdownSignalPipe);
 
 	_thread = Thread::start(this);