From 3b661a96effa96d211676181aa5206d1a6e42113 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 17 Aug 2014 00:50:20 +0200 Subject: kernel: make noswap flag exclude processes from killbig() if not eve, reset noswap flag on exec --- sys/src/9/port/devproc.c | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) (limited to 'sys/src/9/port/devproc.c') diff --git a/sys/src/9/port/devproc.c b/sys/src/9/port/devproc.c index 6a6affde2..42aa5bb12 100644 --- a/sys/src/9/port/devproc.c +++ b/sys/src/9/port/devproc.c @@ -492,7 +492,7 @@ procwstat(Chan *c, uchar *db, int n) if(p->pid != PID(c->qid)) error(Eprocdied); - if(strcmp(up->user, p->user) != 0 && strcmp(up->user, eve) != 0) + if(strcmp(up->user, p->user) != 0 && !iseve()) error(Eperm); d = smalloc(sizeof(Dir)+n); @@ -500,10 +500,9 @@ procwstat(Chan *c, uchar *db, int n) if(n == 0) error(Eshortstat); if(!emptystr(d->uid) && strcmp(d->uid, p->user) != 0){ - if(strcmp(up->user, eve) != 0) + if(!iseve()) error(Eperm); - else - kstrdup(&p->user, d->uid); + kstrdup(&p->user, d->uid); } /* p->procmode determines default mode for files in /proc */ if(d->mode != ~0UL) @@ -1530,32 +1529,6 @@ procstopped(void *a) return ((Proc*)a)->state == Stopped; } -ulong -procpagecount(Proc *p) -{ - Segment *s; - ulong pages; - int i; - - eqlock(&p->seglock); - if(waserror()){ - qunlock(&p->seglock); - nexterror(); - } - pages = 0; - for(i=0; iseg[i]) != nil){ - eqlock(s); - pages += mcountseg(s); - qunlock(s); - } - } - qunlock(&p->seglock); - poperror(); - - return pages; -} - int procctlmemio(Proc *p, uintptr offset, int n, void *va, int read) { -- cgit v1.2.3