summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/port/devproc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/src/9/port/devproc.c b/sys/src/9/port/devproc.c
index 11a04bb55..2207a627a 100644
--- a/sys/src/9/port/devproc.c
+++ b/sys/src/9/port/devproc.c
@@ -1136,16 +1136,21 @@ procwrite(Chan *c, void *va, long n, vlong off)
error("note not posted");
break;
case Qnoteid:
+ if(p->kp)
+ error(Eperm);
id = atoi(a);
+ if(id <= 0)
+ error(Ebadarg);
if(id == p->pid) {
p->noteid = id;
break;
}
t = proctab(0);
for(et = t+conf.nproc; t < et; t++) {
- if(t->state == Dead)
+ if(t->state == Dead || t->kp)
continue;
if(id == t->noteid) {
+ nonone(t);
if(strcmp(p->user, t->user) != 0)
error(Eperm);
p->noteid = id;