NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: PR/53998 CVS commit: src/sys/kern
On Feb 24, 5:20pm, joel.bertrand%systella.fr@localhost (=?UTF-8?Q?BERTRAND_Jo=c3=abl?=) wrote:
-- Subject: Re: PR/53998 CVS commit: src/sys/kern
I can see the race conditions for p_nsems, but since this intended just
to be a guard to prevent abuse, it is simple enough to avoid it for now...
christos
Index: uipc_sem.c
===================================================================
RCS file: /cvsroot/src/sys/kern/uipc_sem.c,v
retrieving revision 1.54
diff -u -p -u -r1.54 uipc_sem.c
--- uipc_sem.c 21 Feb 2019 21:49:23 -0000 1.54
+++ uipc_sem.c 24 Feb 2019 20:25:43 -0000
@@ -511,7 +511,11 @@ ksem_free(ksem_t *ks)
kmem_free(ks, sizeof(ksem_t));
atomic_dec_uint(&nsems_total);
- atomic_dec_uint(&curproc->p_nsems);
+ while ((int)atomic_dec_uint_nv(&curproc->p_nsems) < 0) {
+ printf("%s: pid=%d sem=%p negarive refcount %u\n", __func__,
+ curproc->p_pid, ks, curproc->p_nsems);
+ atomic_inc_uint(&curproc->p_nsems);
+ }
}
#define KSEM_ID_IS_PSHARED(id) \
Home |
Main Index |
Thread Index |
Old Index