From 1133b215d8ce5f72d2252cf19b81fc29289d0b38 Mon Sep 17 00:00:00 2001
From: rsc <rsc>
Date: Thu, 7 Sep 2006 01:56:22 +0000
Subject: [PATCH] more defensive programming

---
 proc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/proc.c b/proc.c
index 8aa1ff1..06ee2fd 100644
--- a/proc.c
+++ b/proc.c
@@ -371,7 +371,9 @@ proc_wait(void)
     havekids = 0;
     for(i = 0; i < NPROC; i++){
       p = &proc[i];
-      if(p->state != UNUSED && p->ppid == cp->pid){
+      if(p->state == UNUSED)
+        continue;
+      if(p->ppid == cp->pid){
         if(p->state == ZOMBIE){
           // Found one.
           kfree(p->mem, p->sz);
@@ -379,6 +381,7 @@ proc_wait(void)
           pid = p->pid;
           p->state = UNUSED;
           p->pid = 0;
+          p->ppid = 0;
           release(&proc_table_lock);
           return pid;
         }
-- 
GitLab