mirror of
				https://github.com/kata-containers/kata-containers.git
				synced 2025-10-31 09:26:52 +00:00 
			
		
		
		
	agent: exec should inherit container process capabilities
Otherwise rustjail would not set its capabilities and it ends up getting all capabilities. Fixes: #2828 Signed-off-by: Peng Tao <bergwolf@hyper.sh>
This commit is contained in:
		| @@ -833,6 +833,20 @@ impl BaseContainer for LinuxContainer { | |||||||
|         } |         } | ||||||
|         let linux = spec.linux.as_ref().unwrap(); |         let linux = spec.linux.as_ref().unwrap(); | ||||||
|  |  | ||||||
|  |         if p.oci.capabilities.is_none() { | ||||||
|  |             // No capabilities, inherit from container process | ||||||
|  |             let process = spec | ||||||
|  |                 .process | ||||||
|  |                 .as_ref() | ||||||
|  |                 .ok_or_else(|| anyhow!("no process config"))?; | ||||||
|  |             p.oci.capabilities = Some( | ||||||
|  |                 process | ||||||
|  |                     .capabilities | ||||||
|  |                     .clone() | ||||||
|  |                     .ok_or_else(|| anyhow!("missing process capabilities"))?, | ||||||
|  |             ); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         let (pfd_log, cfd_log) = unistd::pipe().context("failed to create pipe")?; |         let (pfd_log, cfd_log) = unistd::pipe().context("failed to create pipe")?; | ||||||
|  |  | ||||||
|         let _ = fcntl::fcntl(pfd_log, FcntlArg::F_SETFD(FdFlag::FD_CLOEXEC)) |         let _ = fcntl::fcntl(pfd_log, FcntlArg::F_SETFD(FdFlag::FD_CLOEXEC)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user