On 07/24, Eric W. Biederman wrote: > > Similarly the current code will also miss blocked > signals that are delivered to multiple process, as those signals will > not appear pending during fork.
Well, I still think this needs a separate change and discussion... Let me repeat, I simply do not know if this is good or not, I don't know if the current behaviour is by design or it is mistake. OK, I won't argue but note that your patch doesn't really fix the problem, > + spin_lock_irq(¤t->sighand->siglock); > + if (!(clone_flags & CLONE_THREAD)) > + hlist_add_head(&delayed.node, ¤t->signal->multiprocess); > + recalc_sigpending(); > + spin_unlock_irq(¤t->sighand->siglock); > + retval = -ERESTARTNOINTR; > + if (signal_pending(current)) > + goto fork_out; because recalc_sigpending() will not notice the blocked multiprocess signal if it is already pending. Oleg.