View | Details | Raw Unified | Return to bug 2004 | Differences between
and this patch

Collapse All | Expand All

(-)sandbox-seccomp-filter.c (-3 / +9 lines)
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

Return to bug 2004