MCPcopy
hub / github.com/opencontainers/runc / Init

Method Init

libcontainer/setns_init_linux.go:35–168  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

33}
34
35func (l *linuxSetnsInit) Init() error {
36 if !l.config.Config.NoNewKeyring {
37 if l.config.ProcessLabel != "" {
38 if err := selinux.SetKeyLabel(l.config.ProcessLabel); err != nil {
39 return err
40 }
41 defer selinux.SetKeyLabel("") //nolint: errcheck
42 }
43 // Do not inherit the parent's session keyring.
44 if _, err := keys.JoinSessionKeyring(l.getSessionRingName()); err != nil {
45 logrus.Warnf("KeyctlJoinSessionKeyring: %v", err)
46 // Same justification as in standard_init_linux.go as to why we
47 // don't bail on ENOSYS.
48 if !errors.Is(err, unix.ENOSYS) {
49 return fmt.Errorf("unable to join session keyring: %w", err)
50 }
51 }
52 }
53
54 if l.config.CreateConsole {
55 if err := setupConsole(l.consoleSocket, l.config, false); err != nil {
56 return err
57 }
58 if err := system.Setctty(); err != nil {
59 return err
60 }
61 }
62 if l.pidfdSocket != nil {
63 if err := setupPidfd(l.pidfdSocket, "setns"); err != nil {
64 return fmt.Errorf("failed to setup pidfd: %w", err)
65 }
66 }
67 if l.config.NoNewPrivileges {
68 if err := unix.Prctl(unix.PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); err != nil {
69 return err
70 }
71 }
72 if l.config.Config.Umask != nil {
73 unix.Umask(int(*l.config.Config.Umask))
74 }
75
76 if err := setupScheduler(l.config); err != nil {
77 return err
78 }
79
80 if err := setupIOPriority(l.config); err != nil {
81 return err
82 }
83
84 // Set personality if specified.
85 if l.config.Config.Personality != nil {
86 if err := setupPersonality(l.config.Config); err != nil {
87 return err
88 }
89 }
90
91 if err := setupMemoryPolicy(l.config.Config); err != nil {
92 return err

Callers

nothing calls this directly

Calls 15

getSessionRingNameMethod · 0.95
JoinSessionKeyringFunction · 0.92
SetcttyFunction · 0.92
InitSeccompFunction · 0.92
ApplyProfileFunction · 0.92
UnsafeCloseFromFunction · 0.92
ExecFunction · 0.92
setupConsoleFunction · 0.85
setupPidfdFunction · 0.85
setupSchedulerFunction · 0.85
setupIOPriorityFunction · 0.85
setupPersonalityFunction · 0.85

Tested by

no test coverage detected