アクセスベクタprocess:siginhについて。
「シグナルハンドラの継承」を許可したりするものだが,
そもそも「シグナルハンドラの継承」はどうなってたっけ?
と検証。
一見すべての場合継承されるように思えたが…
●結論:exec時には,シグナルハンドラは継承されない。つまり,process:siginhは,exec時にチェックされても意味がない。

exec時に呼ばれる関数
511 static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
…
744         /* Flush all traces of the currently running executable */
745         retval = flush_old_exec(bprm);

flush_old_execってのが呼ばれる。

fs/exec.c
841 int flush_old_exec(struct linux_binprm * bprm)
…
913         flush_signal_handlers(current, 0);
ここで,flush_signal_handlersというのが呼ばれ,
kernel/signal.c
431 flush_signal_handlers(struct task_struct *t, int force_default)
432 {
433         int i;
434         struct k_sigaction *ka = &t->sighand->action[0];
435         for (i = _NSIG ; i != 0 ; i--) {
436                 if (force_default || ka->sa.sa_handler != SIG_IGN)
437                         ka->sa.sa_handler = SIG_DFL;
438                 ka->sa.sa_flags = 0;
439                 sigemptyset(&ka->sa.sa_mask);
440                 ka++;
441         }
442 }

if (force_default || ka->sa.sa_handler != SIG_IGN)
という条件は,ka->sa.sa_handler != SIG_IGN は成立する。シグナルを無視しない場合という意味。
シグナルを無視しない場合は,デフォルトのシグナルハンドラがセットされる。