提交 e670a483 创建 作者: kolya's avatar kolya

as rtm noticed, avoid doubly-freeing pipe page

上级 deca9fef
...@@ -69,10 +69,11 @@ pipeclose(struct pipe *p, int writable) ...@@ -69,10 +69,11 @@ pipeclose(struct pipe *p, int writable)
p->readopen = 0; p->readopen = 0;
wakeup(&p->writep); wakeup(&p->writep);
} }
release(&p->lock); if(p->readopen == 0 && p->writeopen == 0) {
release(&p->lock);
if(p->readopen == 0 && p->writeopen == 0)
kfree((char*)p, PAGE); kfree((char*)p, PAGE);
} else
release(&p->lock);
} }
//PAGEBREAK: 30 //PAGEBREAK: 30
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论