Home | History | Annotate | Download | only in openssh

Lines Matching defs:box

94 	struct ssh_sandbox *box;
97 box = xcalloc(1, sizeof(*box));
98 box->systrace_fd = -1;
99 box->child_pid = 0;
100 box->osigchld = signal(SIGCHLD, SIG_IGN);
102 return box;
106 ssh_sandbox_child(struct ssh_sandbox *box)
109 signal(SIGCHLD, box->osigchld);
116 ssh_sandbox_parent(struct ssh_sandbox *box, pid_t child_pid,
128 signal(SIGCHLD, box->osigchld);
139 box->child_pid = child_pid;
145 if (ioctl(dev_systrace, STRIOCCLONE, &box->systrace_fd) == -1)
149 debug3("%s: systrace attach, fd=%d", __func__, box->systrace_fd);
150 if (ioctl(box->systrace_fd, STRIOCATTACH, &child_pid) == -1)
152 box->systrace_fd, child_pid, strerror(errno));
158 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
160 box->systrace_fd, strerror(errno));
163 policy.strp_pid = box->child_pid;
164 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
166 __func__, box->systrace_fd, strerror(errno));
183 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
185 __func__, box->systrace_fd, strerror(errno));
190 if (kill(box->child_pid, SIGCONT) != 0)
191 fatal("%s: kill(%d, SIGCONT)", __func__, box->child_pid);
195 ssh_sandbox_parent_finish(struct ssh_sandbox *box)
198 close(box->systrace_fd);
200 free(box);
205 ssh_sandbox_parent_preauth(struct ssh_sandbox *box, pid_t child_pid)
207 ssh_sandbox_parent(box, child_pid, preauth_policy);