Bump github.com/rootless-containers/rootlesskit from 0.10.0 to 0.10.1
Bumps [github.com/rootless-containers/rootlesskit](https://github.com/rootless-containers/rootlesskit) from 0.10.0 to 0.10.1. - [Release notes](https://github.com/rootless-containers/rootlesskit/releases) - [Commits](https://github.com/rootless-containers/rootlesskit/compare/v0.10.0...v0.10.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
		
							parent
							
								
									f84f441bec
								
							
						
					
					
						commit
						8d3c7b4202
					
				
							
								
								
									
										6
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										6
									
								
								go.mod
								
								
								
								
							| 
						 | 
				
			
			@ -49,7 +49,7 @@ require (
 | 
			
		|||
	github.com/opentracing/opentracing-go v1.2.0
 | 
			
		||||
	github.com/pkg/errors v0.9.1
 | 
			
		||||
	github.com/pmezard/go-difflib v1.0.0
 | 
			
		||||
	github.com/rootless-containers/rootlesskit v0.10.0
 | 
			
		||||
	github.com/rootless-containers/rootlesskit v0.10.1
 | 
			
		||||
	github.com/sirupsen/logrus v1.6.0
 | 
			
		||||
	github.com/spf13/cobra v0.0.7
 | 
			
		||||
	github.com/spf13/pflag v1.0.5
 | 
			
		||||
| 
						 | 
				
			
			@ -63,10 +63,8 @@ require (
 | 
			
		|||
	golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
 | 
			
		||||
	golang.org/x/net v0.0.0-20200707034311-ab3426394381
 | 
			
		||||
	golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
 | 
			
		||||
	golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a
 | 
			
		||||
	golang.org/x/sys v0.0.0-20200909081042-eff7692f9009
 | 
			
		||||
	k8s.io/api v0.0.0-20190620084959-7cf5895f2711
 | 
			
		||||
	k8s.io/apimachinery v0.19.2
 | 
			
		||||
	k8s.io/client-go v0.0.0-20190620085101-78d2af792bab
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
replace github.com/containers/image/v5 => github.com/containers/image/v5 v5.5.2-0.20200902171422-1c313b2d23e0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										43
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										43
									
								
								go.sum
								
								
								
								
							| 
						 | 
				
			
			@ -52,9 +52,9 @@ github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f h1:tSNMc+rJDfmY
 | 
			
		|||
github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko=
 | 
			
		||||
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
 | 
			
		||||
github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
 | 
			
		||||
github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 | 
			
		||||
github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 | 
			
		||||
github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 | 
			
		||||
github.com/containerd/containerd v1.3.2 h1:ForxmXkA6tPIvffbrDAcPUIB32QgXkt2XFj+F0UxetA=
 | 
			
		||||
github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 | 
			
		||||
github.com/containerd/containerd v1.4.1 h1:pASeJT3R3YyVn+94qEPk0SnU1OQ20Jd/T+SPKy9xehY=
 | 
			
		||||
github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 | 
			
		||||
| 
						 | 
				
			
			@ -77,14 +77,17 @@ github.com/containers/common v0.22.0 h1:MjJIMka4pJddHsfZpQCF7jOmX6vXqMs0ojDeYmPK
 | 
			
		|||
github.com/containers/common v0.22.0/go.mod h1:qsLcLHM7ha5Nc+JDp5duBwfwEfrnlfjXL/K8HO96QHw=
 | 
			
		||||
github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg=
 | 
			
		||||
github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I=
 | 
			
		||||
github.com/containers/image/v5 v5.5.2-0.20200902171422-1c313b2d23e0 h1:MJ0bKRn2I5I2NJlVzMU7/eP/9yfMCeWaUskl6zgY/nc=
 | 
			
		||||
github.com/containers/image/v5 v5.5.2-0.20200902171422-1c313b2d23e0/go.mod h1:pBnp9KTyDqM84XTHwmk2lXRvTL6jayAQS47GC6PaPGM=
 | 
			
		||||
github.com/containers/image/v5 v5.5.2/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM=
 | 
			
		||||
github.com/containers/image/v5 v5.6.0 h1:r4AqIX4NO/X7OJkqX574zITV3fq0ZPn0pSlLsxWF6ww=
 | 
			
		||||
github.com/containers/image/v5 v5.6.0/go.mod h1:iUSWo3SOLqJo0CkZkKrHxqR6YWqrT98mkXFpE0MceE8=
 | 
			
		||||
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE=
 | 
			
		||||
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
 | 
			
		||||
github.com/containers/ocicrypt v1.0.2/go.mod h1:nsOhbP19flrX6rE7ieGFvBlr7modwmNjsqWarIUce4M=
 | 
			
		||||
github.com/containers/ocicrypt v1.0.3 h1:vYgl+RZ9Q3DPMuTfxmN+qp0X2Bj52uuY2vnt6GzVe1c=
 | 
			
		||||
github.com/containers/ocicrypt v1.0.3/go.mod h1:CUBa+8MRNL/VkpxYIpaMtgn1WgXGyvPQj8jcy0EVG6g=
 | 
			
		||||
github.com/containers/psgo v1.5.1 h1:MQNb7FLbXqBdqz6u4lI2QWizVz4RSTzs1+Nk9XT1iVA=
 | 
			
		||||
github.com/containers/psgo v1.5.1/go.mod h1:2ubh0SsreMZjSXW1Hif58JrEcFudQyIy9EzPUWfawVU=
 | 
			
		||||
github.com/containers/storage v1.20.2/go.mod h1:oOB9Ie8OVPojvoaKWEGSEtHbXUAs+tSyr7RO7ZGteMc=
 | 
			
		||||
github.com/containers/storage v1.23.3/go.mod h1:0azTMiuBhArp/VUmH1o4DJAGaaH+qLtEu17pJ/iKJCg=
 | 
			
		||||
github.com/containers/storage v1.23.5 h1:He9I6y1vRVXYoQg4v2Q9HFAcX4dI3V5MCCrjeBcjkCY=
 | 
			
		||||
github.com/containers/storage v1.23.5/go.mod h1:ha26Q6ngehFNhf3AWoXldvAvwI4jFe3ETQAf/CeZPyM=
 | 
			
		||||
| 
						 | 
				
			
			@ -121,7 +124,6 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8
 | 
			
		|||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
 | 
			
		||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 | 
			
		||||
github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 | 
			
		||||
github.com/docker/docker v1.4.2-0.20191219165747-a9416c67da9f h1:Sm8iD2lifO31DwXfkGzq8VgA7rwxPjRsYmeo0K/dF9Y=
 | 
			
		||||
github.com/docker/docker v1.4.2-0.20191219165747-a9416c67da9f/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 | 
			
		||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200917150144-3956a86b6235+incompatible h1:t8R9cQEpiP5dvTS73SdsVoRl34INIUHRSW3oL6SEUHU=
 | 
			
		||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200917150144-3956a86b6235+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 | 
			
		||||
| 
						 | 
				
			
			@ -154,6 +156,7 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo
 | 
			
		|||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 | 
			
		||||
github.com/fsouza/go-dockerclient v1.6.5 h1:vuFDnPcds3LvTWGYb9h0Rty14FLgkjHZdwLDROCdgsw=
 | 
			
		||||
github.com/fsouza/go-dockerclient v1.6.5/go.mod h1:GOdftxWLWIbIWKbIMDroKFJzPdg6Iw7r+jX1DDZdVsA=
 | 
			
		||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 | 
			
		||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
| 
						 | 
				
			
			@ -173,7 +176,7 @@ github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e h1:BWhy2j3IXJhjCbC68Fp
 | 
			
		|||
github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
 | 
			
		||||
github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=
 | 
			
		||||
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 | 
			
		||||
github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
 | 
			
		||||
github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
 | 
			
		||||
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 | 
			
		||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 | 
			
		||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +235,7 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK
 | 
			
		|||
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
 | 
			
		||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 | 
			
		||||
github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I=
 | 
			
		||||
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
 | 
			
		||||
github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI=
 | 
			
		||||
github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 | 
			
		||||
| 
						 | 
				
			
			@ -241,11 +245,12 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T
 | 
			
		|||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 | 
			
		||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 | 
			
		||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 | 
			
		||||
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 | 
			
		||||
github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=
 | 
			
		||||
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
 | 
			
		||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 | 
			
		||||
github.com/insomniacslk/dhcp v0.0.0-20200420235442-ed3125c2efe7/go.mod h1:CfMdguCK66I5DAUJgGKyNz8aB6vO5dZzkm9Xep6WGvw=
 | 
			
		||||
github.com/insomniacslk/dhcp v0.0.0-20200806210722-3f14f7f8bd9c/go.mod h1:CfMdguCK66I5DAUJgGKyNz8aB6vO5dZzkm9Xep6WGvw=
 | 
			
		||||
github.com/ishidawataru/sctp v0.0.0-20191218070446-00ab2ac2db07 h1:rw3IAne6CDuVFlZbPOkA7bhxlqawFh7RJJ+CejfMaxE=
 | 
			
		||||
github.com/ishidawataru/sctp v0.0.0-20191218070446-00ab2ac2db07/go.mod h1:co9pwDoBCm1kGxawmb4sPq0cSIOOWNPT4KnHotMP1Zg=
 | 
			
		||||
github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
 | 
			
		||||
| 
						 | 
				
			
			@ -260,7 +265,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
 | 
			
		|||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/klauspost/compress v1.10.11 h1:K9z59aO18Aywg2b/WSgBaUX99mHy2BES18Cr5lBKZHk=
 | 
			
		||||
github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 | 
			
		||||
github.com/klauspost/compress v1.10.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 | 
			
		||||
github.com/klauspost/compress v1.10.11/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 | 
			
		||||
github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg=
 | 
			
		||||
github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 | 
			
		||||
| 
						 | 
				
			
			@ -278,6 +284,7 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 | 
			
		|||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
			
		||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 | 
			
		||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 | 
			
		||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 | 
			
		||||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
 | 
			
		||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
 | 
			
		||||
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
 | 
			
		||||
| 
						 | 
				
			
			@ -292,8 +299,9 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh
 | 
			
		|||
github.com/moby/sys/mount v0.1.1 h1:mdhBytJ1SMmMat0gtzWWjFX/87K5j6E/7Q5z7rR0cZY=
 | 
			
		||||
github.com/moby/sys/mount v0.1.1/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
 | 
			
		||||
github.com/moby/sys/mountinfo v0.1.0/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
 | 
			
		||||
github.com/moby/sys/mountinfo v0.1.3 h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI=
 | 
			
		||||
github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
 | 
			
		||||
github.com/moby/sys/mountinfo v0.2.0 h1:HgYSHMWCj8D7w7TE/cQJfWrY6W3TUxs3pwGFyC5qCvE=
 | 
			
		||||
github.com/moby/sys/mountinfo v0.2.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
 | 
			
		||||
github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2 h1:SPoLlS9qUUnXcIY4pvA4CTwYjk0Is5f4UPEkeESr53k=
 | 
			
		||||
github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2/go.mod h1:TjQg8pa4iejrUrjiz0MCtMV38jdMNW4doKSiBrEvCQQ=
 | 
			
		||||
github.com/moby/vpnkit v0.4.0/go.mod h1:KyjUrL9cb6ZSNNAUwZfqRjhwwgJ3BJN+kXh0t43WTUQ=
 | 
			
		||||
| 
						 | 
				
			
			@ -333,7 +341,6 @@ github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuB
 | 
			
		|||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 | 
			
		||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 | 
			
		||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
 | 
			
		||||
github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
 | 
			
		||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 | 
			
		||||
github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs=
 | 
			
		||||
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 | 
			
		||||
| 
						 | 
				
			
			@ -347,6 +354,7 @@ github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod
 | 
			
		|||
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
 | 
			
		||||
github.com/opencontainers/runc v0.0.0-20190425234816-dae70e8efea4/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
 | 
			
		||||
github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
 | 
			
		||||
github.com/opencontainers/runc v1.0.0-rc90/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
 | 
			
		||||
github.com/opencontainers/runc v1.0.0-rc91/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8=
 | 
			
		||||
github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b h1:wjSgG2Z5xWv1wpAI7JbwKR9aJH0p4HJ+ROZ7ViKh9qU=
 | 
			
		||||
github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA=
 | 
			
		||||
| 
						 | 
				
			
			@ -359,6 +367,7 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo
 | 
			
		|||
github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU=
 | 
			
		||||
github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs=
 | 
			
		||||
github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g=
 | 
			
		||||
github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g=
 | 
			
		||||
github.com/opencontainers/selinux v1.6.0 h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY=
 | 
			
		||||
github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
 | 
			
		||||
github.com/openshift/imagebuilder v1.1.6 h1:1+YzRxIIefY4QqtCImx6rg+75QrKNfBoPAKxgMo/khM=
 | 
			
		||||
| 
						 | 
				
			
			@ -403,8 +412,8 @@ github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQl
 | 
			
		|||
github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
 | 
			
		||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
 | 
			
		||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 | 
			
		||||
github.com/rootless-containers/rootlesskit v0.10.0 h1:62HHP8s8qYYcolEtAsuo4GU6qau6pWmcQ1Te+TZTFds=
 | 
			
		||||
github.com/rootless-containers/rootlesskit v0.10.0/go.mod h1:OZQfuRPb+2MA1p+hmjHmSmDRv9SdTzlQ3taNA/0d7XM=
 | 
			
		||||
github.com/rootless-containers/rootlesskit v0.10.1 h1:WkkDeXAFR+meR9k+h5gPhnrDia4U781QqdGvV5BZ0E4=
 | 
			
		||||
github.com/rootless-containers/rootlesskit v0.10.1/go.mod h1:m3LmCklz+LfrwgABaRYi/Yjym/DAG0z/Wc6Oa05WlVM=
 | 
			
		||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 | 
			
		||||
github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8 h1:2c1EFnZHIPCW8qKWgHMH/fX2PkSabFc5mrVzfUNdg5U=
 | 
			
		||||
github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
 | 
			
		||||
| 
						 | 
				
			
			@ -442,6 +451,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
 | 
			
		|||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
			
		||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 | 
			
		||||
github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 | 
			
		||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
 | 
			
		||||
| 
						 | 
				
			
			@ -456,6 +466,7 @@ github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMW
 | 
			
		|||
github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
 | 
			
		||||
github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
 | 
			
		||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 | 
			
		||||
github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
 | 
			
		||||
github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ=
 | 
			
		||||
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
 | 
			
		||||
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
 | 
			
		||||
| 
						 | 
				
			
			@ -465,6 +476,7 @@ github.com/varlink/go v0.0.0-20190502142041-0f1d566d194b h1:hdDRrn9OP/roL8a/e/5Z
 | 
			
		|||
github.com/varlink/go v0.0.0-20190502142041-0f1d566d194b/go.mod h1:YHaw8N660ESgMgLOZfLQqT1htFItynAUxMesFBho52s=
 | 
			
		||||
github.com/vbatts/tar-split v0.11.1 h1:0Odu65rhcZ3JZaPHxl7tCI3V/C/Q9Zf82UFravl02dE=
 | 
			
		||||
github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g=
 | 
			
		||||
github.com/vbauerster/mpb/v5 v5.2.2/go.mod h1:W5Fvgw4dm3/0NhqzV8j6EacfuTe5SvnzBRwiXxDR9ww=
 | 
			
		||||
github.com/vbauerster/mpb/v5 v5.3.0 h1:vgrEJjUzHaSZKDRRxul5Oh4C72Yy/5VEMb0em+9M0mQ=
 | 
			
		||||
github.com/vbauerster/mpb/v5 v5.3.0/go.mod h1:4yTkvAb8Cm4eylAp6t0JRq6pXDkFJ4krUlDqWYkakAs=
 | 
			
		||||
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
 | 
			
		||||
| 
						 | 
				
			
			@ -486,6 +498,7 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ
 | 
			
		|||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 | 
			
		||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
 | 
			
		||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 | 
			
		||||
go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 | 
			
		||||
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
 | 
			
		||||
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 | 
			
		||||
go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M=
 | 
			
		||||
| 
						 | 
				
			
			@ -526,7 +539,6 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR
 | 
			
		|||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
 | 
			
		||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
| 
						 | 
				
			
			@ -560,19 +572,19 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w
 | 
			
		|||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed h1:WBkVNH1zd9jg/dK4HCM4lNANnmd12EHC9z+LmcCG4ns=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a h1:i47hUS795cOydZI4AwJQCKXOr4BvxzvikwDoDtHhP2Y=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009 h1:W0lCpv29Hv0UaM1LXb9QlBHLNP8UFfcKjblhVCWftOM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 | 
			
		||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 | 
			
		||||
| 
						 | 
				
			
			@ -608,6 +620,7 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq
 | 
			
		|||
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 | 
			
		||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
			
		||||
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
			
		||||
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
 | 
			
		||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
			
		||||
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
 | 
			
		||||
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -183,7 +183,12 @@ func createUntarTempDir(sys *types.SystemContext, ref ociArchiveReference) (temp
 | 
			
		|||
	src := ref.resolvedFile
 | 
			
		||||
	dst := tempDirRef.tempDirectory
 | 
			
		||||
	// TODO: This can take quite some time, and should ideally be cancellable using a context.Context.
 | 
			
		||||
	if err := archive.UntarPath(src, dst); err != nil {
 | 
			
		||||
	arch, err := os.Open(src)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return tempDirOCIRef{}, err
 | 
			
		||||
	}
 | 
			
		||||
	defer arch.Close()
 | 
			
		||||
	if err := archive.NewDefaultArchiver().Untar(arch, dst, &archive.TarOptions{NoLchown: true}); err != nil {
 | 
			
		||||
		if err := tempDirRef.deleteTempDir(); err != nil {
 | 
			
		||||
			return tempDirOCIRef{}, errors.Wrapf(err, "error deleting temp directory %q", tempDirRef.tempDirectory)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,12 +6,12 @@ const (
 | 
			
		|||
	// VersionMajor is for an API incompatible changes
 | 
			
		||||
	VersionMajor = 5
 | 
			
		||||
	// VersionMinor is for functionality in a backwards-compatible manner
 | 
			
		||||
	VersionMinor = 5
 | 
			
		||||
	VersionMinor = 6
 | 
			
		||||
	// VersionPatch is for backwards-compatible bug fixes
 | 
			
		||||
	VersionPatch = 2
 | 
			
		||||
	VersionPatch = 0
 | 
			
		||||
 | 
			
		||||
	// VersionDev indicates development branch. Releases will be empty string.
 | 
			
		||||
	VersionDev = "-dev"
 | 
			
		||||
	VersionDev = ""
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Version is the specification version that the package types support.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
// Package mountinfo provides a set of functions to retrieve information about OS mounts.
 | 
			
		||||
// Currently it supports Linux. For historical reasons, there is also some support for FreeBSD,
 | 
			
		||||
// and a shallow implementation for Windows, but in general this is Linux-only package, so
 | 
			
		||||
// the rest of the document only applies to Linux, unless explicitly specified otherwise.
 | 
			
		||||
//
 | 
			
		||||
// In Linux, information about mounts seen by the current process is available from
 | 
			
		||||
// /proc/self/mountinfo. Note that due to mount namespaces, different processes can
 | 
			
		||||
// see different mounts. A per-process mountinfo table is available from /proc/<PID>/mountinfo,
 | 
			
		||||
// where <PID> is a numerical process identifier.
 | 
			
		||||
//
 | 
			
		||||
// In general, /proc is not a very effective interface, and mountinfo is not an exception.
 | 
			
		||||
// For example, there is no way to get information about a specific mount point (i.e. it
 | 
			
		||||
// is all-or-nothing). This package tries to hide the /proc ineffectiveness by using
 | 
			
		||||
// parse filters while reading mountinfo. A filter can skip some entries, or stop
 | 
			
		||||
// processing the rest of the file once the needed information is found.
 | 
			
		||||
//
 | 
			
		||||
// For mountinfo filters that accept path as an argument, the path must be:
 | 
			
		||||
//  - absolute;
 | 
			
		||||
//  - having all symlinks resolved;
 | 
			
		||||
//  - being cleaned.
 | 
			
		||||
//
 | 
			
		||||
// One way to achieve all of the above is to employ filepath.Abs followed by
 | 
			
		||||
// filepath.EvalSymlinks (the latter calls filepath.Clean on the result so
 | 
			
		||||
// there is no need to explicitly call filepath.Clean).
 | 
			
		||||
//
 | 
			
		||||
// NOTE that in many cases there is no need to consult mountinfo at all. Here are some
 | 
			
		||||
// of the cases where mountinfo should not be parsed:
 | 
			
		||||
//
 | 
			
		||||
// 1. Before performing a mount. Usually, this is not needed, but if required (say to
 | 
			
		||||
//    prevent overmounts), to check whether a directory is mounted, call os.Lstat
 | 
			
		||||
//    on it and its parent directory, and compare their st.Sys().(*syscall.Stat_t).Dev
 | 
			
		||||
//    fields -- if they differ, then the directory is the mount point. NOTE this does
 | 
			
		||||
//    not work for bind mounts. Optionally, the filesystem type can also be checked
 | 
			
		||||
//    by calling unix.Statfs and checking the Type field (i.e. filesystem type).
 | 
			
		||||
//
 | 
			
		||||
// 2. After performing a mount. If there is no error returned, the mount succeeded;
 | 
			
		||||
//    checking the mount table for a new mount is redundant and expensive.
 | 
			
		||||
//
 | 
			
		||||
// 3. Before performing an unmount. It is more efficient to do an unmount and ignore
 | 
			
		||||
//    a specific error (EINVAL) which tells the directory is not mounted.
 | 
			
		||||
//
 | 
			
		||||
// 4. After performing an unmount. If there is no error returned, the unmount succeeded.
 | 
			
		||||
//
 | 
			
		||||
// 5. To find the mount point root of a specific directory. You can perform os.Stat()
 | 
			
		||||
//    on the directory and traverse up until the Dev field of a parent directory differs.
 | 
			
		||||
 | 
			
		||||
package mountinfo
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
module github.com/moby/sys/mountinfo
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require golang.org/x/sys v0.0.0-20200909081042-eff7692f9009
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009 h1:W0lCpv29Hv0UaM1LXb9QlBHLNP8UFfcKjblhVCWftOM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
package mountinfo
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// mountedByOpenat2 is a method of detecting a mount that works for all kinds
 | 
			
		||||
// of mounts (incl. bind mounts), but requires a recent (v5.6+) linux kernel.
 | 
			
		||||
func mountedByOpenat2(path string) (bool, error) {
 | 
			
		||||
	dir, last := filepath.Split(path)
 | 
			
		||||
 | 
			
		||||
	dirfd, err := unix.Openat2(unix.AT_FDCWD, dir, &unix.OpenHow{
 | 
			
		||||
		Flags: unix.O_PATH | unix.O_CLOEXEC,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if err == unix.ENOENT { // not a mount
 | 
			
		||||
			return false, nil
 | 
			
		||||
		}
 | 
			
		||||
		return false, &os.PathError{Op: "openat2", Path: dir, Err: err}
 | 
			
		||||
	}
 | 
			
		||||
	fd, err := unix.Openat2(dirfd, last, &unix.OpenHow{
 | 
			
		||||
		Flags:   unix.O_PATH | unix.O_CLOEXEC | unix.O_NOFOLLOW,
 | 
			
		||||
		Resolve: unix.RESOLVE_NO_XDEV,
 | 
			
		||||
	})
 | 
			
		||||
	_ = unix.Close(dirfd)
 | 
			
		||||
	switch err {
 | 
			
		||||
	case nil: // definitely not a mount
 | 
			
		||||
		_ = unix.Close(fd)
 | 
			
		||||
		return false, nil
 | 
			
		||||
	case unix.EXDEV: // definitely a mount
 | 
			
		||||
		return true, nil
 | 
			
		||||
	case unix.ENOENT: // not a mount
 | 
			
		||||
		return false, nil
 | 
			
		||||
	}
 | 
			
		||||
	// not sure
 | 
			
		||||
	return false, &os.PathError{Op: "openat2", Path: path, Err: err}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mounted(path string) (bool, error) {
 | 
			
		||||
	// Try a fast path, using openat2() with RESOLVE_NO_XDEV.
 | 
			
		||||
	mounted, err := mountedByOpenat2(path)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return mounted, nil
 | 
			
		||||
	}
 | 
			
		||||
	// Another fast path: compare st.st_dev fields.
 | 
			
		||||
	mounted, err = mountedByStat(path)
 | 
			
		||||
	// This does not work for bind mounts, so false negative
 | 
			
		||||
	// is possible, therefore only trust if return is true.
 | 
			
		||||
	if mounted && err == nil {
 | 
			
		||||
		return mounted, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Fallback to parsing mountinfo
 | 
			
		||||
	return mountedByMountinfo(path)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,66 @@
 | 
			
		|||
// +build linux freebsd,cgo
 | 
			
		||||
 | 
			
		||||
package mountinfo
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func mountedByStat(path string) (bool, error) {
 | 
			
		||||
	var st unix.Stat_t
 | 
			
		||||
 | 
			
		||||
	if err := unix.Lstat(path, &st); err != nil {
 | 
			
		||||
		if err == unix.ENOENT {
 | 
			
		||||
			// Treat ENOENT as "not mounted".
 | 
			
		||||
			return false, nil
 | 
			
		||||
		}
 | 
			
		||||
		return false, &os.PathError{Op: "stat", Path: path, Err: err}
 | 
			
		||||
	}
 | 
			
		||||
	dev := st.Dev
 | 
			
		||||
	parent := filepath.Dir(path)
 | 
			
		||||
	if err := unix.Lstat(parent, &st); err != nil {
 | 
			
		||||
		return false, &os.PathError{Op: "stat", Path: parent, Err: err}
 | 
			
		||||
	}
 | 
			
		||||
	if dev != st.Dev {
 | 
			
		||||
		// Device differs from that of parent,
 | 
			
		||||
		// so definitely a mount point.
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
	// NB: this does not detect bind mounts on Linux.
 | 
			
		||||
	return false, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func normalizePath(path string) (realPath string, err error) {
 | 
			
		||||
	if realPath, err = filepath.Abs(path); err != nil {
 | 
			
		||||
		return "", fmt.Errorf("unable to get absolute path for %q: %w", path, err)
 | 
			
		||||
	}
 | 
			
		||||
	if realPath, err = filepath.EvalSymlinks(realPath); err != nil {
 | 
			
		||||
		return "", fmt.Errorf("failed to canonicalise path for %q: %w", path, err)
 | 
			
		||||
	}
 | 
			
		||||
	if _, err := os.Stat(realPath); err != nil {
 | 
			
		||||
		return "", fmt.Errorf("failed to stat target of %q: %w", path, err)
 | 
			
		||||
	}
 | 
			
		||||
	return realPath, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mountedByMountinfo(path string) (bool, error) {
 | 
			
		||||
	path, err := normalizePath(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if errors.Is(err, unix.ENOENT) {
 | 
			
		||||
			// treat ENOENT as "not mounted"
 | 
			
		||||
			return false, nil
 | 
			
		||||
		}
 | 
			
		||||
		return false, err
 | 
			
		||||
	}
 | 
			
		||||
	entries, err := GetMounts(SingleEntryFilter(path))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return len(entries) > 0, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,9 @@
 | 
			
		|||
package mountinfo
 | 
			
		||||
 | 
			
		||||
import "io"
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GetMounts retrieves a list of mounts for the current running process,
 | 
			
		||||
// with an optional filter applied (use nil for no filter).
 | 
			
		||||
| 
						 | 
				
			
			@ -16,15 +19,17 @@ func GetMountsFromReader(reader io.Reader, f FilterFunc) ([]*Info, error) {
 | 
			
		|||
	return parseInfoFile(reader, f)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Mounted determines if a specified mountpoint has been mounted.
 | 
			
		||||
// On Linux it looks at /proc/self/mountinfo.
 | 
			
		||||
func Mounted(mountpoint string) (bool, error) {
 | 
			
		||||
	entries, err := GetMounts(SingleEntryFilter(mountpoint))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, err
 | 
			
		||||
// Mounted determines if a specified path is a mount point.
 | 
			
		||||
//
 | 
			
		||||
// The argument must be an absolute path, with all symlinks resolved, and clean.
 | 
			
		||||
// One way to ensure it is to process the path using filepath.Abs followed by
 | 
			
		||||
// filepath.EvalSymlinks before calling this function.
 | 
			
		||||
func Mounted(path string) (bool, error) {
 | 
			
		||||
	// root is always mounted
 | 
			
		||||
	if path == string(os.PathSeparator) {
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return len(entries) > 0, nil
 | 
			
		||||
	return mounted(path)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Info reveals information about a particular mounted filesystem. This
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ import "strings"
 | 
			
		|||
type FilterFunc func(*Info) (skip, stop bool)
 | 
			
		||||
 | 
			
		||||
// PrefixFilter discards all entries whose mount points
 | 
			
		||||
// do not start with a specific prefix
 | 
			
		||||
// do not start with a specific prefix.
 | 
			
		||||
func PrefixFilter(prefix string) FilterFunc {
 | 
			
		||||
	return func(m *Info) (bool, bool) {
 | 
			
		||||
		skip := !strings.HasPrefix(m.Mountpoint, prefix)
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ func PrefixFilter(prefix string) FilterFunc {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SingleEntryFilter looks for a specific entry
 | 
			
		||||
// SingleEntryFilter looks for a specific entry.
 | 
			
		||||
func SingleEntryFilter(mp string) FilterFunc {
 | 
			
		||||
	return func(m *Info) (bool, bool) {
 | 
			
		||||
		if m.Mountpoint == mp {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,3 +51,15 @@ func parseMountTable(filter FilterFunc) ([]*Info, error) {
 | 
			
		|||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mounted(path string) (bool, error) {
 | 
			
		||||
	// Fast path: compare st.st_dev fields.
 | 
			
		||||
	// This should always work for FreeBSD.
 | 
			
		||||
	mounted, err := mountedByStat(path)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return mounted, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Fallback to parsing mountinfo
 | 
			
		||||
	return mountedByMountinfo(path)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,12 +71,18 @@ func parseInfoFile(r io.Reader, filter FilterFunc) ([]*Info, error) {
 | 
			
		|||
		p := &Info{}
 | 
			
		||||
 | 
			
		||||
		// Fill in the fields that a filter might check
 | 
			
		||||
		p.Mountpoint, err = strconv.Unquote(`"` + fields[4] + `"`)
 | 
			
		||||
		p.Mountpoint, err = unescape(fields[4])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: unable to unquote mount point field: %w", fields[4], err)
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: mount point: %w", fields[4], err)
 | 
			
		||||
		}
 | 
			
		||||
		p.Fstype, err = unescape(fields[sepIdx+1])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: fstype: %w", fields[sepIdx+1], err)
 | 
			
		||||
		}
 | 
			
		||||
		p.Source, err = unescape(fields[sepIdx+2])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: source: %w", fields[sepIdx+2], err)
 | 
			
		||||
		}
 | 
			
		||||
		p.Fstype = fields[sepIdx+1]
 | 
			
		||||
		p.Source = fields[sepIdx+2]
 | 
			
		||||
		p.VfsOpts = fields[sepIdx+3]
 | 
			
		||||
 | 
			
		||||
		// Run a filter soon so we can skip parsing/adding entries
 | 
			
		||||
| 
						 | 
				
			
			@ -101,9 +107,9 @@ func parseInfoFile(r io.Reader, filter FilterFunc) ([]*Info, error) {
 | 
			
		|||
		p.Major, _ = strconv.Atoi(mm[0])
 | 
			
		||||
		p.Minor, _ = strconv.Atoi(mm[1])
 | 
			
		||||
 | 
			
		||||
		p.Root, err = strconv.Unquote(`"` + fields[3] + `"`)
 | 
			
		||||
		p.Root, err = unescape(fields[3])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: unable to unquote root field: %w", fields[3], err)
 | 
			
		||||
			return nil, fmt.Errorf("Parsing '%s' failed: root: %w", fields[3], err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		p.Opts = fields[5]
 | 
			
		||||
| 
						 | 
				
			
			@ -150,3 +156,61 @@ func PidMountInfo(pid int) ([]*Info, error) {
 | 
			
		|||
 | 
			
		||||
	return parseInfoFile(f, nil)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// A few specific characters in mountinfo path entries (root and mountpoint)
 | 
			
		||||
// are escaped using a backslash followed by a character's ascii code in octal.
 | 
			
		||||
//
 | 
			
		||||
//   space              -- as \040
 | 
			
		||||
//   tab (aka \t)       -- as \011
 | 
			
		||||
//   newline (aka \n)   -- as \012
 | 
			
		||||
//   backslash (aka \\) -- as \134
 | 
			
		||||
//
 | 
			
		||||
// This function converts path from mountinfo back, i.e. it unescapes the above sequences.
 | 
			
		||||
func unescape(path string) (string, error) {
 | 
			
		||||
	// try to avoid copying
 | 
			
		||||
	if strings.IndexByte(path, '\\') == -1 {
 | 
			
		||||
		return path, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// The following code is UTF-8 transparent as it only looks for some
 | 
			
		||||
	// specific characters (backslach and 0..7) with values < utf8.RuneSelf,
 | 
			
		||||
	// and everything else is passed through as is.
 | 
			
		||||
	buf := make([]byte, len(path))
 | 
			
		||||
	bufLen := 0
 | 
			
		||||
	for i := 0; i < len(path); i++ {
 | 
			
		||||
		if path[i] != '\\' {
 | 
			
		||||
			buf[bufLen] = path[i]
 | 
			
		||||
			bufLen++
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		s := path[i:]
 | 
			
		||||
		if len(s) < 4 {
 | 
			
		||||
			// too short
 | 
			
		||||
			return "", fmt.Errorf("bad escape sequence %q: too short", s)
 | 
			
		||||
		}
 | 
			
		||||
		c := s[1]
 | 
			
		||||
		switch c {
 | 
			
		||||
		case '0', '1', '2', '3', '4', '5', '6', '7':
 | 
			
		||||
			v := c - '0'
 | 
			
		||||
			for j := 2; j < 4; j++ { // one digit already; two more
 | 
			
		||||
				if s[j] < '0' || s[j] > '7' {
 | 
			
		||||
					return "", fmt.Errorf("bad escape sequence %q: not a digit", s[:3])
 | 
			
		||||
				}
 | 
			
		||||
				x := s[j] - '0'
 | 
			
		||||
				v = (v << 3) | x
 | 
			
		||||
			}
 | 
			
		||||
			if v > 255 {
 | 
			
		||||
				return "", fmt.Errorf("bad escape sequence %q: out of range" + s[:3])
 | 
			
		||||
			}
 | 
			
		||||
			buf[bufLen] = v
 | 
			
		||||
			bufLen++
 | 
			
		||||
			i += 3
 | 
			
		||||
			continue
 | 
			
		||||
		default:
 | 
			
		||||
			return "", fmt.Errorf("bad escape sequence %q: not a digit" + s[:3])
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return string(buf[:bufLen]), nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,10 +8,16 @@ import (
 | 
			
		|||
	"runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var errNotImplemented = fmt.Errorf("not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
 | 
			
		||||
 | 
			
		||||
func parseMountTable(_ FilterFunc) ([]*Info, error) {
 | 
			
		||||
	return nil, fmt.Errorf("mount.parseMountTable is not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
 | 
			
		||||
	return nil, errNotImplemented
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func parseInfoFile(_ io.Reader, f FilterFunc) ([]*Info, error) {
 | 
			
		||||
	return parseMountTable(f)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mounted(path string) (bool, error) {
 | 
			
		||||
	return false, errNotImplemented
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,3 +10,7 @@ func parseMountTable(_ FilterFunc) ([]*Info, error) {
 | 
			
		|||
func parseInfoFile(_ io.Reader, f FilterFunc) ([]*Info, error) {
 | 
			
		||||
	return parseMountTable(f)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mounted(_ string) (bool, error) {
 | 
			
		||||
	return false, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,6 +136,12 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
 | 
			
		|||
	return openat(dirfd, path, flags|O_LARGEFILE, mode)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//sys	openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)
 | 
			
		||||
 | 
			
		||||
func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {
 | 
			
		||||
	return openat2(dirfd, path, how, SizeofOpenHow)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//sys	ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
 | 
			
		||||
 | 
			
		||||
func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,6 +83,22 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
 | 
			
		|||
 | 
			
		||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | 
			
		||||
 | 
			
		||||
func openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {
 | 
			
		||||
	var _p0 *byte
 | 
			
		||||
	_p0, err = BytePtrFromString(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0)
 | 
			
		||||
	fd = int(r0)
 | 
			
		||||
	if e1 != 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | 
			
		||||
 | 
			
		||||
func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
 | 
			
		||||
	r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
 | 
			
		||||
	n = int(r0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -752,6 +752,22 @@ const (
 | 
			
		|||
	AT_EACCESS = 0x200
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type OpenHow struct {
 | 
			
		||||
	Flags   uint64
 | 
			
		||||
	Mode    uint64
 | 
			
		||||
	Resolve uint64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const SizeofOpenHow = 0x18
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RESOLVE_BENEATH       = 0x8
 | 
			
		||||
	RESOLVE_IN_ROOT       = 0x10
 | 
			
		||||
	RESOLVE_NO_MAGICLINKS = 0x2
 | 
			
		||||
	RESOLVE_NO_SYMLINKS   = 0x4
 | 
			
		||||
	RESOLVE_NO_XDEV       = 0x1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type PollFd struct {
 | 
			
		||||
	Fd      int32
 | 
			
		||||
	Events  int16
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -303,6 +303,7 @@ func NewCallbackCDecl(fn interface{}) uintptr {
 | 
			
		|||
//sys	ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread
 | 
			
		||||
//sys	SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass
 | 
			
		||||
//sys	GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass
 | 
			
		||||
//sys	QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject
 | 
			
		||||
//sys	SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)
 | 
			
		||||
//sys	GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error)
 | 
			
		||||
//sys	GetProcessId(process Handle) (id uint32, err error)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1584,18 +1584,6 @@ const (
 | 
			
		|||
	JOB_OBJECT_LIMIT_WORKINGSET                 = 0x00000001
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
 | 
			
		||||
	PerProcessUserTimeLimit int64
 | 
			
		||||
	PerJobUserTimeLimit     int64
 | 
			
		||||
	LimitFlags              uint32
 | 
			
		||||
	MinimumWorkingSetSize   uintptr
 | 
			
		||||
	MaximumWorkingSetSize   uintptr
 | 
			
		||||
	ActiveProcessLimit      uint32
 | 
			
		||||
	Affinity                uintptr
 | 
			
		||||
	PriorityClass           uint32
 | 
			
		||||
	SchedulingClass         uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type IO_COUNTERS struct {
 | 
			
		||||
	ReadOperationCount  uint64
 | 
			
		||||
	WriteOperationCount uint64
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,3 +20,16 @@ type Servent struct {
 | 
			
		|||
	Port    uint16
 | 
			
		||||
	Proto   *byte
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
 | 
			
		||||
	PerProcessUserTimeLimit int64
 | 
			
		||||
	PerJobUserTimeLimit     int64
 | 
			
		||||
	LimitFlags              uint32
 | 
			
		||||
	MinimumWorkingSetSize   uintptr
 | 
			
		||||
	MaximumWorkingSetSize   uintptr
 | 
			
		||||
	ActiveProcessLimit      uint32
 | 
			
		||||
	Affinity                uintptr
 | 
			
		||||
	PriorityClass           uint32
 | 
			
		||||
	SchedulingClass         uint32
 | 
			
		||||
	_                       uint32 // pad to 8 byte boundary
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,3 +20,15 @@ type Servent struct {
 | 
			
		|||
	Proto   *byte
 | 
			
		||||
	Port    uint16
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
 | 
			
		||||
	PerProcessUserTimeLimit int64
 | 
			
		||||
	PerJobUserTimeLimit     int64
 | 
			
		||||
	LimitFlags              uint32
 | 
			
		||||
	MinimumWorkingSetSize   uintptr
 | 
			
		||||
	MaximumWorkingSetSize   uintptr
 | 
			
		||||
	ActiveProcessLimit      uint32
 | 
			
		||||
	Affinity                uintptr
 | 
			
		||||
	PriorityClass           uint32
 | 
			
		||||
	SchedulingClass         uint32
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,3 +20,16 @@ type Servent struct {
 | 
			
		|||
	Port    uint16
 | 
			
		||||
	Proto   *byte
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
 | 
			
		||||
	PerProcessUserTimeLimit int64
 | 
			
		||||
	PerJobUserTimeLimit     int64
 | 
			
		||||
	LimitFlags              uint32
 | 
			
		||||
	MinimumWorkingSetSize   uintptr
 | 
			
		||||
	MaximumWorkingSetSize   uintptr
 | 
			
		||||
	ActiveProcessLimit      uint32
 | 
			
		||||
	Affinity                uintptr
 | 
			
		||||
	PriorityClass           uint32
 | 
			
		||||
	SchedulingClass         uint32
 | 
			
		||||
	_                       uint32 // pad to 8 byte boundary
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,6 +212,7 @@ var (
 | 
			
		|||
	procResumeThread                                         = modkernel32.NewProc("ResumeThread")
 | 
			
		||||
	procSetPriorityClass                                     = modkernel32.NewProc("SetPriorityClass")
 | 
			
		||||
	procGetPriorityClass                                     = modkernel32.NewProc("GetPriorityClass")
 | 
			
		||||
	procQueryInformationJobObject                            = modkernel32.NewProc("QueryInformationJobObject")
 | 
			
		||||
	procSetInformationJobObject                              = modkernel32.NewProc("SetInformationJobObject")
 | 
			
		||||
	procGenerateConsoleCtrlEvent                             = modkernel32.NewProc("GenerateConsoleCtrlEvent")
 | 
			
		||||
	procGetProcessId                                         = modkernel32.NewProc("GetProcessId")
 | 
			
		||||
| 
						 | 
				
			
			@ -2341,6 +2342,18 @@ func GetPriorityClass(process Handle) (ret uint32, err error) {
 | 
			
		|||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0)
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0)
 | 
			
		||||
	ret = int(r0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -100,7 +100,7 @@ github.com/containers/common/pkg/sysinfo
 | 
			
		|||
github.com/containers/common/version
 | 
			
		||||
# github.com/containers/conmon v2.0.20+incompatible
 | 
			
		||||
github.com/containers/conmon/runner/config
 | 
			
		||||
# github.com/containers/image/v5 v5.6.0 => github.com/containers/image/v5 v5.5.2-0.20200902171422-1c313b2d23e0
 | 
			
		||||
# github.com/containers/image/v5 v5.6.0
 | 
			
		||||
github.com/containers/image/v5/copy
 | 
			
		||||
github.com/containers/image/v5/directory
 | 
			
		||||
github.com/containers/image/v5/directory/explicitfilepath
 | 
			
		||||
| 
						 | 
				
			
			@ -351,7 +351,7 @@ github.com/matttproud/golang_protobuf_extensions/pbutil
 | 
			
		|||
github.com/mistifyio/go-zfs
 | 
			
		||||
# github.com/moby/sys/mount v0.1.1
 | 
			
		||||
github.com/moby/sys/mount
 | 
			
		||||
# github.com/moby/sys/mountinfo v0.1.3
 | 
			
		||||
# github.com/moby/sys/mountinfo v0.2.0
 | 
			
		||||
github.com/moby/sys/mountinfo
 | 
			
		||||
# github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2
 | 
			
		||||
github.com/moby/term
 | 
			
		||||
| 
						 | 
				
			
			@ -477,7 +477,7 @@ github.com/prometheus/common/model
 | 
			
		|||
github.com/prometheus/procfs
 | 
			
		||||
github.com/prometheus/procfs/internal/fs
 | 
			
		||||
github.com/prometheus/procfs/internal/util
 | 
			
		||||
# github.com/rootless-containers/rootlesskit v0.10.0
 | 
			
		||||
# github.com/rootless-containers/rootlesskit v0.10.1
 | 
			
		||||
github.com/rootless-containers/rootlesskit/pkg/msgutil
 | 
			
		||||
github.com/rootless-containers/rootlesskit/pkg/port
 | 
			
		||||
github.com/rootless-containers/rootlesskit/pkg/port/builtin
 | 
			
		||||
| 
						 | 
				
			
			@ -609,7 +609,7 @@ golang.org/x/oauth2/internal
 | 
			
		|||
# golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
 | 
			
		||||
golang.org/x/sync/errgroup
 | 
			
		||||
golang.org/x/sync/semaphore
 | 
			
		||||
# golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a
 | 
			
		||||
# golang.org/x/sys v0.0.0-20200909081042-eff7692f9009
 | 
			
		||||
golang.org/x/sys/cpu
 | 
			
		||||
golang.org/x/sys/internal/unsafeheader
 | 
			
		||||
golang.org/x/sys/unix
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue