On Mon, Jan 4, 2021 at 9:16 AM Stephen Smalley <stephen.smalley.work@xxxxxxxxx> wrote: > > On Fri, Dec 18, 2020 at 7:06 PM Stephen Brennan > <stephen.s.brennan@xxxxxxxxxx> wrote: > > > > Smack needs its security_task_to_inode() hook to be called when a task > > execs a new executable. Store the self_exec_id of the task and call the > > hook via pid_update_inode() whenever the exec_id changes. > > > > Signed-off-by: Stephen Brennan <stephen.s.brennan@xxxxxxxxxx> > > Sorry to be late in responding, but the proc inode security structure > needs to be updated not only upon a context-changing exec but also > upon a setcon(3) aka write to /proc/self/attr/current just like the > uid/gid needs to be updated not only upon a setuid exec but also upon > a setuid(2). I'm also unclear as to why you can't call > security_task_to_inode during RCU lookup; it doesn't block/sleep > AFAICT. > All it does is take a spinlock and update a few fields. You could also optimize this by comparing the sid similar to how the uid/gid are compared and only updating it within the hook if it has not yet been initialized or has changed since it was originally set.