mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	This fixes a race condition in runc/systemd at container creation time opencontainers/runc#1683 Signed-off-by: vikaschoudhary16 <vichoudh@redhat.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (C) 2017 SUSE LLC. All rights reserved.
 | |
| // Use of this source code is governed by a BSD-style
 | |
| // license that can be found in the LICENSE file.
 | |
| 
 | |
| package securejoin
 | |
| 
 | |
| import "os"
 | |
| 
 | |
| // In future this should be moved into a separate package, because now there
 | |
| // are several projects (umoci and go-mtree) that are using this sort of
 | |
| // interface.
 | |
| 
 | |
| // VFS is the minimal interface necessary to use SecureJoinVFS. A nil VFS is
 | |
| // equivalent to using the standard os.* family of functions. This is mainly
 | |
| // used for the purposes of mock testing, but also can be used to otherwise use
 | |
| // SecureJoin with VFS-like system.
 | |
| type VFS interface {
 | |
| 	// Lstat returns a FileInfo describing the named file. If the file is a
 | |
| 	// symbolic link, the returned FileInfo describes the symbolic link. Lstat
 | |
| 	// makes no attempt to follow the link. These semantics are identical to
 | |
| 	// os.Lstat.
 | |
| 	Lstat(name string) (os.FileInfo, error)
 | |
| 
 | |
| 	// Readlink returns the destination of the named symbolic link. These
 | |
| 	// semantics are identical to os.Readlink.
 | |
| 	Readlink(name string) (string, error)
 | |
| }
 | |
| 
 | |
| // osVFS is the "nil" VFS, in that it just passes everything through to the os
 | |
| // module.
 | |
| type osVFS struct{}
 | |
| 
 | |
| // Lstat returns a FileInfo describing the named file. If the file is a
 | |
| // symbolic link, the returned FileInfo describes the symbolic link. Lstat
 | |
| // makes no attempt to follow the link. These semantics are identical to
 | |
| // os.Lstat.
 | |
| func (o osVFS) Lstat(name string) (os.FileInfo, error) { return os.Lstat(name) }
 | |
| 
 | |
| // Readlink returns the destination of the named symbolic link. These
 | |
| // semantics are identical to os.Readlink.
 | |
| func (o osVFS) Readlink(name string) (string, error) { return os.Readlink(name) }
 |