mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Only register /dev/net/tun if supported.
PiperOrigin-RevId: 325266487
This commit is contained in:
@@ -160,8 +160,8 @@ func (fd *tunFD) EventUnregister(e *waiter.Entry) {
|
||||
fd.device.EventUnregister(e)
|
||||
}
|
||||
|
||||
// isNetTunSupported returns whether /dev/net/tun device is supported for s.
|
||||
func isNetTunSupported(s inet.Stack) bool {
|
||||
// IsNetTunSupported returns whether /dev/net/tun device is supported for s.
|
||||
func IsNetTunSupported(s inet.Stack) bool {
|
||||
_, ok := s.(*netstack.Stack)
|
||||
return ok
|
||||
}
|
||||
|
||||
+11
-5
@@ -37,6 +37,7 @@ import (
|
||||
"gvisor.dev/gvisor/pkg/sentry/fsimpl/proc"
|
||||
"gvisor.dev/gvisor/pkg/sentry/fsimpl/sys"
|
||||
"gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs"
|
||||
"gvisor.dev/gvisor/pkg/sentry/inet"
|
||||
"gvisor.dev/gvisor/pkg/sentry/kernel"
|
||||
"gvisor.dev/gvisor/pkg/sentry/kernel/auth"
|
||||
"gvisor.dev/gvisor/pkg/sentry/vfs"
|
||||
@@ -89,6 +90,12 @@ func registerFilesystems(k *kernel.Kernel) error {
|
||||
if err := ttydev.Register(vfsObj); err != nil {
|
||||
return fmt.Errorf("registering ttydev: %w", err)
|
||||
}
|
||||
tunSupported := tundev.IsNetTunSupported(inet.StackFromContext(ctx))
|
||||
if tunSupported {
|
||||
if err := tundev.Register(vfsObj); err != nil {
|
||||
return fmt.Errorf("registering tundev: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
if kernel.FUSEEnabled {
|
||||
if err := fuse.Register(vfsObj); err != nil {
|
||||
@@ -96,9 +103,6 @@ func registerFilesystems(k *kernel.Kernel) error {
|
||||
}
|
||||
}
|
||||
|
||||
if err := tundev.Register(vfsObj); err != nil {
|
||||
return fmt.Errorf("registering tundev: %v", err)
|
||||
}
|
||||
a, err := devtmpfs.NewAccessor(ctx, vfsObj, creds, devtmpfs.Name)
|
||||
if err != nil {
|
||||
return fmt.Errorf("creating devtmpfs accessor: %w", err)
|
||||
@@ -114,8 +118,10 @@ func registerFilesystems(k *kernel.Kernel) error {
|
||||
if err := ttydev.CreateDevtmpfsFiles(ctx, a); err != nil {
|
||||
return fmt.Errorf("creating ttydev devtmpfs files: %w", err)
|
||||
}
|
||||
if err := tundev.CreateDevtmpfsFiles(ctx, a); err != nil {
|
||||
return fmt.Errorf("creating tundev devtmpfs files: %v", err)
|
||||
if tunSupported {
|
||||
if err := tundev.CreateDevtmpfsFiles(ctx, a); err != nil {
|
||||
return fmt.Errorf("creating tundev devtmpfs files: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
if kernel.FUSEEnabled {
|
||||
|
||||
Reference in New Issue
Block a user