Lines Matching defs:box
102 struct ssh_sandbox *box;
105 box = xcalloc(1, sizeof(*box));
106 box->systrace_fd = -1;
107 box->child_pid = 0;
108 box->osigchld = signal(SIGCHLD, SIG_IGN);
110 return box;
114 ssh_sandbox_child(struct ssh_sandbox *box)
117 signal(SIGCHLD, box->osigchld);
124 ssh_sandbox_parent(struct ssh_sandbox *box, pid_t child_pid,
136 signal(SIGCHLD, box->osigchld);
147 box->child_pid = child_pid;
153 if (ioctl(dev_systrace, STRIOCCLONE, &box->systrace_fd) == -1)
157 debug3("%s: systrace attach, fd=%d", __func__, box->systrace_fd);
158 if (ioctl(box->systrace_fd, STRIOCATTACH, &child_pid) == -1)
160 box->systrace_fd, child_pid, strerror(errno));
166 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
168 box->systrace_fd, strerror(errno));
171 policy.strp_pid = box->child_pid;
172 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
174 __func__, box->systrace_fd, strerror(errno));
191 if (ioctl(box->systrace_fd, STRIOCPOLICY, &policy) == -1)
193 __func__, box->systrace_fd, strerror(errno));
198 if (kill(box->child_pid, SIGCONT) != 0)
199 fatal("%s: kill(%d, SIGCONT)", __func__, box->child_pid);
203 ssh_sandbox_parent_finish(struct ssh_sandbox *box)
206 close(box->systrace_fd);
208 free(box);
213 ssh_sandbox_parent_preauth(struct ssh_sandbox *box, pid_t child_pid)
215 ssh_sandbox_parent(box, child_pid, preauth_policy);