On 01/20, Kees Cook wrote: > > > The only difference is that sys_uretprobe() is new and existing setups > > doesn't know about it. Suppose you have > > > > int func(void) > > { > > return 123; > > } > > > > int main(void) > > { > > seccomp(SECCOMP_SET_MODE_STRICT, 0,0); > > for (;;) > > func(); > > } > > > > and it runs with func() uretprobed. > > > > If you install the new kernel, this application will crash immediately. > > > > I understand your objections, but what do you think we can do instead? > > I don't think a new "try_to_speedup_uretprobes_at_your_own_risk" sysctl > > makes sense, it will be almost never enabled... > > This seems like a uretprobes design problem. If it's going to use > syscalls, it must take things like seccomp into account. True. I reviewed that patch, and I forgot about seccomp too. > SECCOMP_SET_MODE_STRICT will also crash in the face of syscall_restart... Yes, I guess SECCOMP_SET_MODE_STRICT assumes that read/write can't return ERESTART_RESTARTBLOCK. But again, what can we do right now? I do not like the idea to revert the patch which adds sys_uretprobe(). Don't get me wrong, I do not use uprobes, so personally I don't really care about the performance improvements it adds. Not to mention FRED, although I have no idea when it will be available. Lets forget about sys_uretprobe(). Lets suppose the kernel doesn't have ERESTART_RESTARTBLOCK/sys_restart_syscall and we want to add this feature today. How do you think we can do this without breaking the existing setups which use seccomp ? Oleg.