|
Lines 179-184
void
Link Here
|
| 179 |
ssh_sandbox_child(struct ssh_sandbox *box) |
179 |
ssh_sandbox_child(struct ssh_sandbox *box) |
| 180 |
{ |
180 |
{ |
| 181 |
struct rlimit rl_zero; |
181 |
struct rlimit rl_zero; |
|
|
182 |
int nnp_failed = 0; |
| 182 |
|
183 |
|
| 183 |
/* Set rlimits for completeness if possible. */ |
184 |
/* Set rlimits for completeness if possible. */ |
| 184 |
rl_zero.rlim_cur = rl_zero.rlim_max = 0; |
185 |
rl_zero.rlim_cur = rl_zero.rlim_max = 0; |
|
Lines 197-209
ssh_sandbox_child(struct ssh_sandbox *bo
Link Here
|
| 197 |
#endif /* SANDBOX_SECCOMP_FILTER_DEBUG */ |
198 |
#endif /* SANDBOX_SECCOMP_FILTER_DEBUG */ |
| 198 |
|
199 |
|
| 199 |
debug3("%s: setting PR_SET_NO_NEW_PRIVS", __func__); |
200 |
debug3("%s: setting PR_SET_NO_NEW_PRIVS", __func__); |
| 200 |
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == -1) |
201 |
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == -1) { |
| 201 |
fatal("%s: prctl(PR_SET_NO_NEW_PRIVS): %s", |
202 |
verbose("%s: prctl(PR_SET_NO_NEW_PRIVS): %s", |
| 202 |
__func__, strerror(errno)); |
203 |
__func__, strerror(errno)); |
|
|
204 |
nnp_failed = 1; |
| 205 |
} |
| 203 |
debug3("%s: attaching seccomp filter program", __func__); |
206 |
debug3("%s: attaching seccomp filter program", __func__); |
| 204 |
if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &preauth_program) == -1) |
207 |
if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &preauth_program) == -1) |
| 205 |
fatal("%s: prctl(PR_SET_SECCOMP): %s", |
208 |
verbose("%s: prctl(PR_SET_SECCOMP): %s", |
| 206 |
__func__, strerror(errno)); |
209 |
__func__, strerror(errno)); |
|
|
210 |
else if (nnp_failed) |
| 211 |
fatal("%s: SECCOMP_MODE_FILTER activated but " |
| 212 |
"PR_SET_NO_NEW_PRIVS failed", __func__); |
| 207 |
} |
213 |
} |
| 208 |
|
214 |
|
| 209 |
void |
215 |
void |