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
The following reply was made to PR kern/53998; it has been noted by GNATS.
From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, kern-bug-people%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
joel.bertrand%systella.fr@localhost
Cc:
Subject: Re: PR/53998 CVS commit: src/sys/kern
Date: Sat, 23 Feb 2019 23:58:56 -0500
On Feb 23, 6:55pm, joel.bertrand%systella.fr@localhost (=?UTF-8?Q?BERTRAND_Jo=c3=abl?=) wrote:
-- Subject: Re: PR/53998 CVS commit: src/sys/kern
The problem is that p_nsems is zeroed out on fork so we end up with negative
counts when we close on the child (which are interpreted as overflow). The
following patch moves p_nsems to the copy part of struct proc.
christos
Index: proc.h
===================================================================
RCS file: /cvsroot/src/sys/sys/proc.h,v
retrieving revision 1.350
diff -u -p -u -r1.350 proc.h
--- proc.h 5 Dec 2018 18:16:51 -0000 1.350
+++ proc.h 24 Feb 2019 04:56:30 -0000
@@ -316,7 +316,6 @@ struct proc {
pid_t p_vfpid_done; /* :: vforked done pid */
lwpid_t p_lwp_created; /* :: lwp created */
lwpid_t p_lwp_exited; /* :: lwp exited */
- u_int p_nsems; /* Count of semaphores */
char *p_path; /* :: full pathname of executable */
/*
@@ -338,7 +337,7 @@ struct proc {
vaddr_t p_psstrp; /* :: address of process's ps_strings */
u_int p_pax; /* :: PAX flags */
-
+ u_int p_nsems; /* Count of semaphores */
int p_xexit; /* p: exit code */
/*
* End area that is copied on creation
Home |
Main Index |
Thread Index |
Old Index