diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-01-28 23:43:09 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-01-28 23:43:09 +0100 |
commit | e24381784b0a56896542d1a5828a77ad0e1c40ec (patch) | |
tree | 493e0d6ad811f563142c5de72a8b80bb5d142b93 /proc/mgt.c | |
parent | 613f84a0fcd46f2143b046b57c6c6444eafa4d4d (diff) | |
parent | b8c728ec51696c5d17ef09a00b3b193b70a487da (diff) | |
download | hurd-e24381784b0a56896542d1a5828a77ad0e1c40ec.tar.gz hurd-e24381784b0a56896542d1a5828a77ad0e1c40ec.tar.bz2 hurd-e24381784b0a56896542d1a5828a77ad0e1c40ec.zip |
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd
Diffstat (limited to 'proc/mgt.c')
-rw-r--r-- | proc/mgt.c | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -417,7 +417,7 @@ S_proc_handle_exceptions (struct proc *p, the thread_set_state requested by proc_handle_exceptions and then send an exception_raise message as requested. */ kern_return_t -S_proc_exception_raise (mach_port_t excport, +S_proc_exception_raise (struct exc *e, mach_port_t reply, mach_msg_type_name_t reply_type, mach_port_t thread, @@ -428,8 +428,7 @@ S_proc_exception_raise (mach_port_t excport, { error_t err; struct proc *p; - struct exc *e = ports_lookup_port (proc_bucket, excport, exc_class); - if (!e) + if (!e || e->pi.bucket != proc_bucket || e->pi.class != exc_class) return EOPNOTSUPP; p = task_find (task); @@ -455,7 +454,6 @@ S_proc_exception_raise (mach_port_t excport, the faulting thread's state to run its recovery code, which should dequeue that message. */ err = thread_set_state (thread, e->flavor, e->thread_state, e->statecnt); - ports_port_deref (e); mach_port_deallocate (mach_task_self (), thread); mach_port_deallocate (mach_task_self (), task); if (err) @@ -484,7 +482,6 @@ S_proc_exception_raise (mach_port_t excport, /* Nuke the task; we will get a notification message and report that it died with SIGNO. */ task_terminate (task); - ports_port_deref (e); /* In the MACH_SEND_NOTIFY_IN_PROGRESS case, the kernel did a pseudo-receive of the RPC request message that may have added user |