summaryrefslogtreecommitdiff
path: root/proc/pgrp.c
diff options
context:
space:
mode:
Diffstat (limited to 'proc/pgrp.c')
-rw-r--r--proc/pgrp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/proc/pgrp.c b/proc/pgrp.c
index c8cea52a..f596327a 100644
--- a/proc/pgrp.c
+++ b/proc/pgrp.c
@@ -86,6 +86,8 @@ static inline void
free_pgrp (struct pgrp *pg)
{
*pg->pg_prevp = pg->pg_next;
+ if (pg->pg_next)
+ pg->pg_next->pg_prevp = pg->pg_prevp;
if (!pg->pg_session->s_pgrps)
free_session (pg->pg_session);
remove_pgrp_from_hash (pg);
@@ -339,6 +341,8 @@ leave_pgrp (struct proc *p)
struct pgrp *pg = p->p_pgrp;
*p->p_gprevp = p->p_gnext;
+ if (p->p_gnext)
+ p->p_gnext->p_gprevp = p->p_gprevp;
/* If we were the last member of our pgrp, free it */
if (!pg->pg_plist)