Author: kib
Date: Tue Jul 12 03:52:05 2016
New Revision: 302613
URL: https://svnweb.freebsd.org/changeset/base/302613

Log:
  Add assert to complement r302328.
  
  AST must not execute with TDF_SBDRY or TDF_SEINTR/TDF_SERESTART thread
  flags set, which is asserted in userret(). As the consequence, -1 return
  from cursig() must not be possible.
  
  Tested by:    pho
  Sponsored by: The FreeBSD Foundation
  MFC after:    1 week

Modified:
  head/sys/kern/subr_trap.c

Modified: head/sys/kern/subr_trap.c
==============================================================================
--- head/sys/kern/subr_trap.c   Tue Jul 12 03:38:29 2016        (r302612)
+++ head/sys/kern/subr_trap.c   Tue Jul 12 03:52:05 2016        (r302613)
@@ -274,8 +274,10 @@ ast(struct trapframe *framep)
            !SIGISEMPTY(p->p_siglist)) {
                PROC_LOCK(p);
                mtx_lock(&p->p_sigacts->ps_mtx);
-               while ((sig = cursig(td)) != 0)
+               while ((sig = cursig(td)) != 0) {
+                       KASSERT(sig >= 0, ("sig %d", sig));
                        postsig(sig);
+               }
                mtx_unlock(&p->p_sigacts->ps_mtx);
                PROC_UNLOCK(p);
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to