Parcourir la source

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

Adam Ierymenko il y a 11 ans
Parent
commit
6c5f6feb5e
1 fichiers modifiés avec 6 ajouts et 0 suppressions
  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);