From ac15346de75ecf7a2f7e9b17f4ae4cd838c805da Mon Sep 17 00:00:00 2001 From: Giacomo Tesio Date: Mon, 2 Jan 2017 00:30:27 +0100 Subject: [PATCH] kernel: make #0/pid, #0/ppid and #0/pgrpid readable --- sys/src/kern/port/devself.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/src/kern/port/devself.c b/sys/src/kern/port/devself.c index c18c07f..572f60d 100644 --- a/sys/src/kern/port/devself.c +++ b/sys/src/kern/port/devself.c @@ -65,9 +65,9 @@ typedef union PipeSet static Dirtab selfdir[]={ ".", {Qdir, 0, QTDIR}, 0, DMDIR|0777, "brk", {Qbrk}, 0, 0, - "pid", {Qpid}, 0, 0, - "ppid", {Qppid}, 0, 0, - "pgrpid", {Qpgrpid}, 0, 0, + "pid", {Qpid}, 0, 0400, + "ppid", {Qppid}, 0, 0400, + "pgrpid", {Qpgrpid}, 0, 0400, "segments", {Qsegments}, 0, 0644, "pipes", {Qpipes}, 0, 0, "wdir", {Qwdir}, 0, 0644, @@ -311,6 +311,14 @@ selfread(Chan *c, void *va, long n, int64_t off) return n; case Qwdir: return read_working_dir(up, va, n, off); + + case Qpid: + return readnum(offset, va, n, up->pid, NUMSIZE); + case Qppid: + return readnum(offset, va, n, up->parentpid, NUMSIZE); + case Qpgrpid: + return readnum(offset, va, n, up->pgrp->pgrpid, NUMSIZE); + default: error(Egreg); }