as rtm noticed, avoid doubly-freeing pipe page

feat/start
kolya 2008-10-15 17:42:56 +00:00
parent deca9fef83
commit e670a48358
1 changed files with 4 additions and 3 deletions

7
pipe.c
View File

@ -69,10 +69,11 @@ pipeclose(struct pipe *p, int writable)
p->readopen = 0;
wakeup(&p->writep);
}
release(&p->lock);
if(p->readopen == 0 && p->writeopen == 0)
if(p->readopen == 0 && p->writeopen == 0) {
release(&p->lock);
kfree((char*)p, PAGE);
} else
release(&p->lock);
}
//PAGEBREAK: 30