Guys,
your commit d6572202d986 ("UBUNTU:SAUCE: exec: ensure file system accounting in
check_unsafe_exec is correct") looks wrong for me,
it leads to endless cycle in check_unsafe_exec().
fs/exec.c:: check_unsafe_exec()
...
recheck:
fs_recheck = false;
t = p;
n_fs = 1;
spin_lock(&p->fs->lock);
rcu_read_lock();
while_each_thread(p, t) {
if (t->fs == p->fs)
n_fs++;
if (t->flags & (PF_EXITING | PF_FORKNOEXEC))
fs_recheck = true;
}
rcu_read_unlock();
if (p->fs->users > n_fs) {
if (fs_recheck) {
spin_unlock(&p->fs->lock);
goto recheck; <<<<<< cycles forever
}
bprm->unsafe |= LSM_UNSAFE_SHARE;
} else
p->fs->in_exec = 1;
spin_unlock(&p->fs->lock);
We have few Soft lockups inside VMs with ubuntu 16.04, where process was
cyceled here.
Should I submit you separate bug for this problem?
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1672819
Title:
exec'ing a setuid binary from a threaded program sometimes fails to
setuid
To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1672819/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs