mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Use O_CLOEXEC in util packages
This prevents fd's from leaking to subprocesses.
This commit is contained in:
		@@ -23,7 +23,7 @@ import "golang.org/x/sys/unix"
 | 
			
		||||
// Acquire acquires a lock on a file for the duration of the process. This method
 | 
			
		||||
// is reentrant.
 | 
			
		||||
func Acquire(path string) error {
 | 
			
		||||
	fd, err := unix.Open(path, unix.O_CREAT|unix.O_RDWR, 0600)
 | 
			
		||||
	fd, err := unix.Open(path, unix.O_CREAT|unix.O_RDWR|unix.O_CLOEXEC, 0600)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -497,7 +497,7 @@ func ExclusiveOpenFailsOnDevice(pathname string) (bool, error) {
 | 
			
		||||
		klog.Errorf("Path %q is not referring to a device.", pathname)
 | 
			
		||||
		return false, nil
 | 
			
		||||
	}
 | 
			
		||||
	fd, errno := unix.Open(pathname, unix.O_RDONLY|unix.O_EXCL, 0)
 | 
			
		||||
	fd, errno := unix.Open(pathname, unix.O_RDONLY|unix.O_EXCL|unix.O_CLOEXEC, 0)
 | 
			
		||||
	// If the device is in use, open will return an invalid fd.
 | 
			
		||||
	// When this happens, it is expected that Close will fail and throw an error.
 | 
			
		||||
	defer unix.Close(fd)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user