On Fri, 2013-04-26 at 12:02 -0400, Xi Wang wrote: > On Fri, Apr 26, 2013 at 11:11 AM, Eric Dumazet <eric.duma...@gmail.com> wrote: > > 1) 'current' at the time the code is jitted (compiled) is not the > > 'current' at the time the filter will be evaluated. > > > > On x86_64, if CONFIG_IA32_EMULATION=y, syscall_get_arch() evaluates to : > > > > if (task_thread_info(task)->status & TS_COMPAT) > > return AUDIT_ARCH_I386; > > return AUDIT_ARCH_X86_64; > > > > So your code is completely wrong. > > Just to be clear, are you worrying about a process changing its > personality after installing seccomp filters?
You didn't explained how things worked. Are you assuming we network guys know everything ? Just to make it very clear : We are very dumb and you must explain us everything. If process would not change personality, why do we have get_arch() at all ? Why isn't it optimized outside of the JIT itself, in the generic seccomp checker, its a single "A = K" instruction after all. Why this part is even in the x86 BPF JIT ? To me it looks like _if_ get_arch() is provided in BPF, its for a reason, and your implementation looks very suspicious, if not buggy. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/