reset signal handlers when execve called

This commit is contained in:
Tomoki Shirasawa
2015-12-18 12:46:53 +09:00
parent 7e5c7445e2
commit 0f8b2aba22

View File

@@ -1688,6 +1688,7 @@ SYSCALL_DECLARE(execve)
struct process_vm *vm = thread->vm; struct process_vm *vm = thread->vm;
struct vm_range *range; struct vm_range *range;
struct process *proc = thread->proc; struct process *proc = thread->proc;
int i;
ihk_mc_spinlock_lock_noirq(&vm->memory_range_lock); ihk_mc_spinlock_lock_noirq(&vm->memory_range_lock);
@@ -1786,6 +1787,12 @@ SYSCALL_DECLARE(execve)
panic(""); panic("");
} }
for(i = 0; i < _NSIG; i++){
if(thread->sigcommon->action[i].sa.sa_handler != SIG_IGN &&
thread->sigcommon->action[i].sa.sa_handler != SIG_DFL)
thread->sigcommon->action[i].sa.sa_handler = SIG_DFL;
}
error = ptrace_report_exec(cpu_local_var(current)); error = ptrace_report_exec(cpu_local_var(current));
if(error) { if(error) {
kprintf("execve(): ERROR: ptrace_report_exec()\n"); kprintf("execve(): ERROR: ptrace_report_exec()\n");