DF-2751 / fix.diff
--- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1243,12 +1243,12 @@ funsetown(struct sigio **sigiop) struct pgrp *pgrp; struct proc *p; struct sigio *sigio; - if ((sigio = *sigiop) != NULL) { - lwkt_gettoken(&sigio_token); /* protect sigio */ + sigio = NULL; + lwkt_gettoken(&sigio_token); /* protect sigio */ + if ((sigio = *sigiop) != NULL) { KKASSERT(sigiop == sigio->sio_myref); - sigio = *sigiop; *sigiop = NULL; - lwkt_reltoken(&sigio_token); } + lwkt_reltoken(&sigio_token); if (sigio == NULL) return; |